CSharp - MVC RegisterRoutes只改变控制器名称

  显示原文与译文双语对照的内容

我们有一个具有两个不同角色的MVC 4应用程序,所有对Role1的请求都被转发到

Role1XYZController和Role2请求被转发到 Role2XYZContoller 。

这些页面的请求url应显示为: 浏览器中的xyzcontroller/索引。

我们可以用以下方法实现:


if(role == role1)
{
routes.MapRoute(
"XYZRoute",//Route name
"XYZ/Request", 
 new { controller ="Role1XYZ", action ="Request", id = UrlParameter.Optional } 
);
}

但是,我有多种操作方法: 请求。保存。明细。Role1XYZ控制器中的详细信息。 我应该为所有的actionMethods创建单独的MapRoute?

我们如何只在请求url中重新路由控制器名称?

感谢你的帮助。

时间: 作者:

{action} 替换 Request:


if(role == role1)
{
 routes.MapRoute(
"XYZRoute",//Route name
"XYZ/{action}", 
 new { controller ="Role1XYZ", action ="Request", id = UrlParameter.Optional } 
 );
}

记住,最后一行只是路由的缺省值。 它仍将与其他行动。

作者:
...