2009-09-04 80 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