0

我有一个新的 MVC4 应用程序,我在 VS11 beta 中使用 MVC4 互联网项目模板创建。现在,当我将应用程序部署到我的网站托管服务提供商,并在 Global.asax 类中保持以下行处于活动状态时,我收到有关 MVC 尝试注册已存在的路由的错误。当我注释掉这一行时,一切运行正常,但是到特定区域控制器的操作链接被破坏,正如我在这个问题中所问的那样。

AreaRegistration.RegisterAllAreas();
4

2 回答 2

1

如果您的部署 bin 目录中有旧的 dll(如果您在某个时候重命名了项目或 dll),那么您会收到此错误。

确保在部署时清理 bin 目录。

于 2012-07-23T12:58:08.437 回答
0

当您在与根网站中的控制器同名的区域中拥有控制器时,通常会发生这种情况。即“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" });
于 2012-07-28T14:09:24.007 回答