【问题标题】:Receive an error when using "Areas" in MVC 3在 MVC 3 中使用“区域”时收到错误
【发布时间】:2011-04-23 12:25:42
【问题描述】:

我想在 MVC 3 项目中定义两个 区域

“经理和主要领域”,

经理有一些控制,比如主要区域“控制者的名字在两者都有相似”

但我在每个控制器中实现了不同的方法

当我尝试运行我的项目时,出现此错误:

“/”应用程序中的服务器错误。 无法找到该资源。 说明:HTTP 404。您要查找的资源(或其依赖项之一)可能已被删除、名称已更改或暂时不可用。请查看以下 URL 并确保其拼写正确。 请求的 URL:/main/home 版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.0.30319.1

当我在不使用“区域”的情况下实施项目时。我从来没有出错,但我的项目不干净

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    我假设您在 Application_Start 中的 Global.asax 中拥有:

    AreaRegistration.RegisterAllAreas();
    

    作为第一步是吗?

    在 Area/Main 文件夹中,您有一个 MainAreaRegistration.cs,如下所示:

    public class MainAreaRegistration : AreaRegistration
    {
        public override string AreaName
        {
            get
            {
                return "Main";
            }
        }
    
        public override void RegisterArea(AreaRegistrationContext context)
        {
    
            context.MapRoute(
                "Main_default",
                "Main/{controller}/{action}/{id}",
                new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                new[] { "MyCompany.Web.Areas.Main.Controllers" }
            );
        }
    
    }
    

    一旦我有多个区域,我发现有必要使用适当的命名空间(控制器所在的命名空间)完全限定路由以避免混淆。显然,上面的命名空间就是我的结构,尽管你的主区域控制器在什么命名空间,这是放在上面文件中的那个。

    希望这会有所帮助。

    干杯, 特里

    【讨论】:

    • 如果您觉得我的回答对您有帮助,如果您将其标记为答案或至少投票赞成,我将不胜感激?
    【解决方案2】:

    在 Global.asax 中尝试将路由更改为:

    routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
                    new string[] { "YourNamespace.Controllers" } // ADD THIS
                );
    

    【讨论】:

    • 谢谢圣诞老人,我的问题解决了
    • 不客气!如果您的问题解决了,请将答案设为“已接受”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    相关资源
    最近更新 更多