我正在使用 MVC3 和 C#。
我在一个区域内有一个子应用程序,而主应用程序挂在项目的根目录之外,即:
Root
- Controller
- Models
- Views
- Areas
- SubApp
SubApp 有自己的路由文件,默认路由如下:
context.MapRoute(
"SubApp_default",
"SubApp/{controller}/{action}/{id}",
new { controller = "Dashboard", action = "Index", id = UrlParameter.Optional }
);
我有一个通用菜单,其中包含应该指向根控制器/操作的 URL。但是,当我在子应用程序中时,这些菜单 URL 会更改,例如:
/SubApp/Home/Index
什么时候应该:
/Home/Index
我怀疑是上面的“SubApp_default”路由导致了这个问题。我希望“根”URL 使用“根”路由,如果你明白我的想法,并且只有特定区域的 URL 才能使用区域路由。
请思想。
非常感谢。
编辑1:
我正在使用 ActionLinks 即:
@Html.ActionLink("Create Order", "Index", "Order", new { area=""},null)
这将显示为菜单项。当在 SubApp 区域/应用程序中时,它被路由为
/SubApp/Order/Index
而不是
/Order/Index.
我在 _layout 页面中有这个菜单 ActionLink 代码。