2013-07-15 127 views
0

我可以在控制器內有控制器。asp.net mvc 4控制器內的控制器

我已經有一個用戶控制器,我現在想添加一個角色控制器,但我想從用戶控制器內訪問角色控制器,如:/ users/roles/index,而不是創建另一個控制器並訪問它通過/角色/指數

回答

0

恕我直言,你可以定義路由

//Mapping vanity url for user roles 
routes.MapRoute(
    "RolesRouteName", // Route name 
    "user/{action}/{index}/{id}", 
    new { controller = "roles", action = "index", id = UrlParameter.Optional} 
); 

,如果你想保持一個典型的REST implem作爲

@Html.RouteLink("RouteLinkText", "RolesRouteName", new { id =1212 }) 
0

使用然後我會建議避免這種情況,併爲每個根模型(用戶,角色等)分配一個控制器。

或者,如果您希望角色只能通過用戶訪問,作爲嵌套資源(意味着您要顯示,更新,只刪除特定用戶的角色),那麼您可以像這樣定義路由:

routes.MapRoute(
    "RolesForUser", // Route name 
    "user/{userId}/{controller}/{action}/{id}", 
    new { controller = "roles", action = "index", id = UrlParameter.Optional} 
); 

所以要user/3/roles/index一個鏈接將帶您到角色控制器的索引操作,用戶3

相反,如果你的目的是要躲在一個/user/ URL角色的管理,那麼我會去一個並進一步創建一個用戶(或管理員)在你的MVC項目(這是作爲就像在Visual Studio中右鍵單擊該項目並選擇Add -> Area...