为什么在我的MVC4应用未修改的模板代码试图两次注册的地方?(Why is unmodified t

2019-10-17 01:03发布

我有我创造过在VS11 beta版MVC4互联网项目模板的新MVC4应用。 现在,当我部署应用到我的网站托管服务提供商,和我离开以下行活跃在我的Global.asax类,我得到的MVC的错误尝试注册一个已经存在的路线。 当我注释掉这一行,一切都正常运行,但动作前往当地特定的控制器坏了,因为我要问问这个问题 。

AreaRegistration.RegisterAllAreas();

Answer 1:

如果在您的部署bin目录中的旧的DLL(如果你在某些时候改名为您的项目或DLL),那么你会得到这个错误。

确保在部署bin目录得到清洗。



Answer 2:

当你在使用相同的名称作为您的根网站控制器的区域控制器,这通常发生。 即 “WebsiteNamespace.Controllers.HomeController” 和 “WebsiteNamespace.Areas.MyArea.Controllers.HomeController”。

为了改善这种情况,你需要在你的基地网站声明航线命名空间:

        routes.MapRoute("Default", "{controller}/{action}/{id}", new {
            controller = "Home",
            action = "Index",
            id = UrlParameter.Optional
        }, new[] { "WebsiteNamespace.Controllers" });


文章来源: Why is unmodified template code in my MVC4 app trying to register areas twice?