2009-12-27 74 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)