我正在寻找类似于通过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 = "" });
解决方法
为活动添加默认值:
routes.MapRoute(null,"Activity/{activityId}/Task/{action}/{id}/{activity}",new { controller = "Task",id = "",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对于了解如何处理这些事情非常有用…