ASP.NET MVC路由 - 通过重定向保持参数

时间:2011-09-30 18:18:26

标签: asp.net-mvc coding-style routing

我正在开发我的第一个真正的ASP.NET MVC项目,我需要一些建议。

所以,假设我的应用程序有一个管理部分,您可以在其中创建每个部门内的公司,部门和用户。

公司 - >部门 - >用户

现在我的网址看起来像这样:

Companies/Index
Departments/Index?companyId=1
Users/Index?companyId=1&departmentId=2

它变得复杂,因为如果我必须从用户列表重定向回部门列表,我必须做类似的事情:

return RedirectToAction("Index", "Departments", new { companyId = model.CompanyId });

随着事物越来越嵌套,我必须开始传递越来越多的参数,以便控制器操作具有他们需要的上下文。

是否有更好的方法来构建具有“嵌套”功能的控制器的路由?他们应该看起来更像: 公司/ {id} / Departments / {id} /用户?

有没有人可以将我链接到一篇好的文章,可以提供一些关于最佳实践的建议?

1 个答案:

答案 0 :(得分:0)

您只需在Global.aspx上添加更多路线,将路线映射到操作 在顶部有更具体的路线。 你可以有类似的东西:

routes.MapRoute(“user”,“Users / Index / {companyId} {departmentId}”,new {controller =“”,action =“”}) routes.MapRoute(“department”,“Departments / Index / {companyId}”,new {controller =“”,action =“”}) routes.MapRoute(“company”,“Companies / Index”,new {controller =“”,action =“”})