0

我可以在控制器中有一个控制器吗?

我已经有一个用户控制器,现在我想添加一个角色控制器,但我想从用户控制器中访问角色控制器,如下所示:/users/roles/index 而不是创建另一个控制器并通过 /roles/ 访问它指数

4

1 回答 1

0

如果您想保持典型的 REST 实现,那么我建议避免这种情况,并为您的每个根模型(用户、角色等)分配一个控制器。

或者,如果您希望角色只能通过用户访问,作为嵌套资源(意味着您只想显示、更新、删除特定用户的角色),那么您可以像这样定义路由:

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

因此,指向用户 3 的链接user/3/roles/index将带您到角色控制器的索引操作。

相反,如果您的意图是将角色管理隐藏在/user/url 后面,那么我会更进一步,Area在您的 MVC 项目中创建一个用户(或管理员)(这就像在 Visual Studio 中右键单击项目并选择一样简单Add -> Area...

于 2013-07-15T08:08:11.850 回答