2009-09-04 93 views
12

我在寻找类似的可以通过Rails的嵌套的REST风格的路线功能的路由选择。 MvcContrib上的SimplyRestful项目似乎不再活跃,它似乎也不是1.0 MVC版本的最新版本。对嵌套资源的ASP.Net MVC支持?

这就是我要找的URI方案,

/活动/ 10 /任务/ 1 /编辑 或 /活动/ 10 /任务/编辑/ 1

我只是避风港”能够使其运行并且我运行过的所有文档都描述了非嵌套方案。它似乎并不像它会是那么难....

这是我一直在使用...

 
    routes.MapRoute(null, 
     "Activity/{activityId}/Task/{action}/{id}", 
     new { controller = "Task", action = "Edit", activityId = "", id = "" }); 

回答

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" 

菲尔哈克的Routing Debugger ASP.NET MVC的是搞清楚如何工作的这些东西非常有用...

+0

感谢。我只是意识到,在发布之前,我会在意外事件中粘贴它。 – nerraga 2009-09-05 04:19:46

+0

路由调试器在我的读卡器上出现过几次,我完全忘了它。谢谢! – nerraga 2009-09-09 22:26:22