我有行动
public virtual ActionResult Show(string userId)
和
public virtual ActionResult Show(int groupId)
在Global.asax我有
routes.MapRoute(
"Group_Default",
"{controller}/{action}/{groupId}",
MVC.Groups.Show()
);
routes.MapRoute(
"UserProfile_Default",
"{controller}/{action}/{userId}",
MVC.Profile.Show()
);
现在,当我请求group/show/...
时,它运行正常。但是当我调用Profile/Show/...
时,参数为null。但是,如果我删除了UserProfile_Default
,那么两个都有效,但个人资料网址包含参数的问号(我希望它像.../profile/show/5678
一样干净)
它会以某种方式阻挡另一条路线。
答案 0 :(得分:3)
请尝试这些:
routes.MapRoute(
"Group_Default",
"Group/{action}/{groupId}",
new { controller = "Group" }
);
routes.MapRoute(
"UserProfile_Default",
"Profile/{action}/{userId}",
new { controller = "Profile" }
);
为了将来参考,路由调试器是一个非常好的工具,可以准确查看路由的确切情况以及哪些网址正在执行哪些操作:http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx