ASP.Net MVC对嵌套资源的支持?

时间:2009-09-04 22:52:08

标签: asp.net-mvc routes

我正在寻找类似于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 = "" });

1 个答案:

答案 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对于弄清楚如何处理这些事情非常有用......

相关问题