2009-12-27 57 views
3

我正在构建一个APS.net MVC 2应用程序,我有一个父表和一个子表。家长子女关系的MVC路由

我已经为父表建立了控制器,视图和模型,所以我可以添加,编辑,查看详细信息并从父表中删除记录。我使用下面的路由要做到这一点

routes.MapRoute(
       "Default",            // Route name 
       "{controller}/{action}/{id}",       // URL with parameters 
       new { controller = "Parent", action = "List", id = "" } // Parameter defaults 

这种设置让我使用以下URL在我的应用程序:

要列出所有父记录: /父母/名单
查看 特定父记录的详细信息: /父/详细信息/ < ID>
要编辑 特定父记录: /父母/编辑/ < ID>


现在我会为每个父记录一个子表。这是什么标准路由?

要列出应用子记录了 特定父: 父/ < ID> /儿童/列表
查看 细节特定子记录: 儿童/详细信息/ < ID>
编辑一个 特定子记录:儿童/编辑/ < ID>

是否正确?我怎么去设置MapRoute?

回答

4

对于列表中的第二和第三项,您当前的路线将会正常,也就是说,如果您有一个子控制器。

To list app child records for a specific parent: Parent/< ID>/Child/List 
To view details for a specific child record: Child/Details/< ID> 
To edit a specific child record: Child/Edit/< ID> 

对于第一个项目只需创建一个新的路线

routes.MapRoute(
"ParentWithChild", 
"{parent}/{id}/Child/List", 
new { controller = "Child", action = "ChildList", id = "", parent=""} 

我假设你要使用的控制器孩子,将创建一个名为的childList

签名将成为一个新的操作方法像这样

public ActionResult ChildList(string parent, string id) 

快速点如果“父”是单词的父母而不是一个一个名字,那么路径将是

"Parent/{id}/Child/List", 

和签名会

public ActionResult ChildList(string id)