对于我正在进行的项目,我们有公司。公司有联系和设施。根据业务规则,流程是您选择公司来访问联系人或设施。
修改 实体是公司,设施和联系人。
由于每个实体都有自己的工作流程,因此他们在代码中都有一个AREA。什么是一个干净的方法,以确保路由网址将如下所示:
/公司/ 1234 /接触/ 456
/公司/ 1234 /设施/ 679
如果有一种方法可以让下一个区域成为一种好方法,但可能会使代码变得混乱。
答案 0 :(得分:2)
我认为你不需要使用区域
通过在global.asax中为每个“子控制器”定义路由以帮助引擎,可以完成所需的操作。 (我假设Contact
和Facility
是分开的controllers
?)
这确实意味着对哪种模式走向哪条路线非常具体,但我认为以下将做你需要的。
在全局asax中添加这两条新路由(在默认路由之上):
routes.MapRoute(
"ContactRoute", // Route name
"Company/{id}/Contact/{action}/{contactId}", // URL with parameters
new { controller = "Contact", action = "Index"
} // Parameter defaults
);
routes.MapRoute(
"FacilityRoute", // Route name
"Company/{id}/Facility/{action}/{facilityId}", // URL with parameters
new { controller = "Facility", action = "Index"
} // Parameter defaults
);
我不是100%的代码,您可能需要将contactId
和facilityId
定义为可选,但我希望它能为您提供一个想法?