在我的bin部署MVC4应用程序中我的区域路由有什么问题?

Pro*_*ofK 5 asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas asp.net-mvc-4

我刚刚在我的网站主机上部署了一个MVC4 .NET 4.0应用程序,用于"实时"部署测试.非区域路线工作正常,例如我的

@Html.ActionLink("Register as a Client", "Register", "Account", new { registrationType = "Client"}, null)
Run Code Online (Sandbox Code Playgroud)

链接工作正常,链接打开正确的页面.但是,通过指向基于区域的操作的链接,如下所示:

@Html.ActionLink("Authors", "Index", "Home", new { Area = "Author", registrationType = "Author" }, null)
Run Code Online (Sandbox Code Playgroud)

实际呈现给浏览器的链接缺少动作和控制器,即

http://mylivedomain.com/?Area=Author&registrationType=Author
Run Code Online (Sandbox Code Playgroud)

值得注意的是,MVC4的css捆绑功能在部署后无法正常工作,我回过头来使用经典样式链接到各个样式表.

可能相关:我的问题:为什么我的MVC4应用程序中未经修改的模板代码尝试两次注册区域?

JUST IN:从区域路由映射中删除默认路由的默认操作解决了这个问题.在VS2012模板代码中没有默认控制器.

Jan*_*nen 2

尝试检查您区域的操作方法中的 this.ControllerContext.RouteData.DataTokens["area"] 。

我遇到过类似问题的情况,其中区域名称只是一个空字符串。

在操作方法中设置 DataToken 可能会为您提供快速修复,但它并不能回答为什么 MVC 不设置区域名称的问题。