我们有一个具有两个不同角色的MVC 4应用程序,对Role1的所有请求都转发到
Role1XYZController和Role2请求被转发到Role2XYZContoller。
这些页面的请求网址应显示为:浏览器中的XYZController / Index。
我们可以使用以下方式实现这一目标:
if(role == role1)
{
routes.MapRoute(
"XYZRoute", // Route name
"XYZ/Request",
new { controller = "Role1XYZ", action = "Request", id = UrlParameter.Optional }
);
}
但我有多种操作方法:Role1XYZ控制器中的Request,Save,Drilldown,Details。我应该为所有actionMethods创建单独的MapRoute吗?
如何在请求网址中重新路由控制器名称?
提前感谢您的帮助。
答案 0 :(得分:0)
将Request
替换为{action}
:
if(role == role1)
{
routes.MapRoute(
"XYZRoute", // Route name
"XYZ/{action}",
new { controller = "Role1XYZ", action = "Request", id = UrlParameter.Optional }
);
}
请记住,最后一行只是路线的默认值。它仍将与其他行动相匹配。