您好我的项目中有管理区域。 AreaRegistration是默认的
public class AdminAreaRegistration : AreaRegistration
{
public override string AreaName => "Admin";
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Admin_default",
"admin/{controller}/{action}/{id}",
new { action = "Index", controller = "Dashboard", id = UrlParameter.Optional }
);
}
}
当我使用Url.Action("Index", "Dashboard")
时,它会返回/admin
,但我希望获得admin/{controller}
之类的路径,因此它必须是/admin/dashboard
。但是,当用户导航到/admin
时,需要重定向到/admin/dashboard
所以我需要那个
1)Url.Action("Index", "Dashboard")
将返回/admin/dashboard
2)用户导航到/admin
会将他重定向到/admin/dashboard
有没有办法用mvc路由做到这一点?
答案 0 :(得分:0)
在SO解决方案发布之后一如既往地发现自己
解决方案是使用Url.RouteUrl("Admin_Dashboard")
和路由
context.MapRoute(
"Admin_Dashboard",
"admin/dashboard",
new { action = "Index", controller = "Dashboard", id = UrlParameter.Optional }
);