1

我有一个 ASP.NET MVC3 Razor 应用程序变得太大而无法有效管理。为了更好地控制代码,我实现了区域并将代码重新安排在各自的区域中。

从多个区域使用的东西留在“普通”控制器文件夹中。

一旦我使用某个区域的 Action 或 ActionLink,我的问题就会出现。我必须手动包含一个名为 'area = ""' 的路由参数才能使链接正常工作。

有很多链接需要更改,所以我尝试让控制器选择回退到“根”控制器以找到所需的控制器。到目前为止我没有运气。

如果找不到控制器,我必须做什么才能使 MVC3 搜索区域控制器并继续在根控制器文件夹中搜索?

谢谢安德烈亚斯

4

1 回答 1

0

您可以通过适当地设置您的路线来做到这一点。

每个区域都有自己的路由供应商,然后在 global.ascx 中有路由。路由的行为有点像 case 语句,它首先尝试在区域中查找路由,如果找不到匹配的路由,则它会通过 global.ascx 路由。

因此,在您的新区域中,设置一条包罗万象的路线,并在 global.ascx 中设置一条包罗万象的路线,您应该没问题。

您可以使用Haack 的路由调试器来查看您的路由发生了什么。

于 2011-09-14T12:17:45.133 回答