考虑一个具有两个模型的ASP.NET MVC应用程序:假设是
如果您设置了模型并使用Visual Studio生成控制器/视图,则可以在
但我希望它只能在公司内添加人员,也就是说,您将在
如何在ASP.NET MVC 5中设置此类路由?
编辑:
因此,我在我的路由中执行了以下操作:
但它仍然无法工作。如果我去
是否有一种设置所有路由的方式,就像 Node 或大多数其他 MVC 框架一样?
Company
和Person
。每个公司都有一个人员列表。每个人只属于一个公司。如果您设置了模型并使用Visual Studio生成控制器/视图,则可以在
/Company/{id}
等处编辑公司,以及在/Person/{id}
等处编辑人员。但我希望它只能在公司内添加人员,也就是说,您将在
/Company/{id}/Persons/{id}
处编辑人员。如何在ASP.NET MVC 5中设置此类路由?
编辑:
因此,我在我的路由中执行了以下操作:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "CompanyPerson",
url: "Company/{CompanyId}/Person/{PersonId}/{action}",
defaults: new { controller = "Person", action = "Index", PersonId = UrlParameter.Optional }
);
routes.MapRoute(
name: "Company",
url: "Company/{id}/{action}",
defaults: new { controller = "Company", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/",
defaults: new { controller = "Home", action = "Index" }
);
但它仍然无法工作。如果我去
/Company/7/Person
,我会得到一个人的索引,但是 /Company/7/Person/Create
只会返回相同的索引,并且 "Create New" 链接指向的是 /Person/Create
而不是 /Company/7/Person/Create
。是否有一种设置所有路由的方式,就像 Node 或大多数其他 MVC 框架一样?