Asp.net mvc “如何离开我的将军”;路线;在特定的“模式”中操作代码时保持完整;面积“;用它自己的",;路线;?
我将MVC3与C#一起使用 我在一个区域内有一个子应用程序,而主应用程序挂起项目的根 即: 子应用有自己的路由文件,具有以下默认路由:Asp.net mvc “如何离开我的将军”;路线;在特定的“模式”中操作代码时保持完整;面积“;用它自己的",;路线;?,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,我将MVC3与C#一起使用 我在一个区域内有一个子应用程序,而主应用程序挂起项目的根 即: 子应用有自己的路由文件,具有以下默认路由: context.MapRoute( "SubApp_default", "SubApp/{controller}/{action}/{id}", new { controller = "Dashboard", action = "Index", id = UrlPar
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 ie:
@Html.ActionLink("Create Order", "Index", "Order", new { area=""},null)
它将显示为菜单项。当在子应用程序区域/应用程序中时,将作为
/SubApp/Order/Index
而不是
/Order/Index.
我在_布局页面中有此菜单操作链接代码。当您的应用程序中有区域时,您需要明确指定要指向的控制器和操作 如果在子应用区域内,则需要创建的指向根的任何链接都应包含一个空白区域
@Url.Action("index", "home", new { area = "" }
使用相同的概念,从根控制器到子应用区域的任何url都应包括链接中的区域:
@Url.Action("index", "home", new { area = "SubApp" }
如果您没有跨越任何边界,则不指定区域将默认为您所在的区域。我是否必须指定“{area=…”在我所有的actionlink中。我希望不是。好吧,我发现它不起作用,因为使用了存储在区域内的特定于区域的布局。现在使用根布局。我有点惊讶,在路由文件中没有解决此问题的方法,而不必为每个actionlink指定区域属性?
@Url.Action("index", "home", new { area = "SubApp" }