我正在寻找类似于Rails提供的嵌套RESTFul路由功能的路由选项。 MvcContrib上的SimplyRestful项目似乎不再是活动的,也不是1.0 MVC版本的最新版本。
这是我正在寻找的uri计划,
/活动/ 10 /任务/ 1 /编辑 要么 /活动/ 10 /任务/编辑/ 1
我根本无法让它工作,我遇到的所有文档都描述了非嵌套方案。它似乎并不那么困难......
这就是我一直在使用的......
routes.MapRoute(null, "Activity/{activityId}/Task/{action}/{id}", new { controller = "Task", action = "Edit", activityId = "", id = "" });
答案 0 :(得分:13)
为activity
添加默认值:
routes.MapRoute(null,
"Activity/{activityId}/Task/{action}/{id}/{activity}",
new {
controller = "Task",
action = "Edit",
id = "",
activityId = "",
activity = "" });
还要记住,这条路线只会在表单上提取网址
/Activity/10/Edit/1/theActivity
而你的例子
/Activity/10/Edit/1
将被默认路由选中,将路线值设置为
controller = "Activity"
action = "10"
id = "Edit/1"
Phil Haack的Routing Debugger for ASP.NET MVC对于弄清楚如何处理这些事情非常有用......