我可以在控制器中有一个控制器吗?
我已经有一个用户控制器,现在我想添加一个角色控制器,但我想从用户控制器中访问角色控制器,如下所示:/users/roles/index 而不是创建另一个控制器并通过 /roles/ 访问它指数
我可以在控制器中有一个控制器吗?
我已经有一个用户控制器,现在我想添加一个角色控制器,但我想从用户控制器中访问角色控制器,如下所示:/users/roles/index 而不是创建另一个控制器并通过 /roles/ 访问它指数
如果您想保持典型的 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...
)