【发布时间】:2015-07-13 12:38:32
【问题描述】:
我有一个 ASP.NET MVC 应用程序,该应用程序具有以下特殊路线的区域:
区域注册文件:
context.Routes.MapHttpRoute(
"AccessControlApi_default",
"accesscontrol/api/{controller}/{id}",
new { id = RouteParameter.Optional }
);
context.MapRoute(
"AccessControl_dashboardwidgets",
"accesscontrol/dashboardwidgets/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "AccessControl.Controllers.DashboardWidgets" }
);
context.MapRoute(
"AccessControl_default",
"accesscontrol/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new[] { "AccessControl.Controllers" }
);
第一个路由是给api的,第二个是给区域下子文件夹中的控制器和视图的,第三个是给区域下的默认控制器的。
路由一切正常,但问题在于像这样使用Url.Action:
<a href='@Url.Action("Index","Home",new{area="AccessControl"})'>Go to home</a>
它总是在区域和控制器之间的 url 中注入 dashboardwidgets 关键字,如下所示:{host}/accesscontrol/dashboardwidgets/Home/Index
如何根据需要生成 url,到区域的根目录,或者到区域下的这个子文件夹??
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-mvc-routing asp.net-mvc-areas