我有一个ASP.NET MVC3 Razor应用程序变得太大而无法有效管理。 为了更好地控制我实现区域的代码并重新安排代码在相应的区域。
从多个区域使用的内容保留在“普通”控制器文件夹中。
一旦我使用某个区域的Action或ActionLink,就会出现问题。 我必须手动包含一个名为'area =“”'的路由参数来使链接工作。
有很多链接需要更改,所以我尝试让控制器选择回退到“根”控制器以找到所需的控制器。 到目前为止我没有运气。
如果找不到控制器,我该怎样做才能启用MVC3搜索区域控制器并继续在根控制器文件夹中搜索?
由于 安德烈亚斯
答案 0 :(得分:0)
您可以通过适当设置路线来完成此操作。
每个区域都有自己的路线供应商,然后global.ascx中有路线。这些路由的行为类似于case语句,它首先尝试在区域中查找路由,如果找不到匹配的路由,则它会转到global.ascx路由。
所以,在你的新区域中,设置一个catchall路线,并在global.ascx设置一个catchall路线,你应该没问题。
您可以使用Haack's路线调试程序查看您的路线发生了什么。