对于我正在从事的项目,我们有公司。公司有联系方式和设施。根据业务规则,流程是您选择一家公司来访问联系人或设施。
编辑: 实体是公司、设施和联系人。
由于每个实体都有自己的工作流程,因此它们在代码中都有自己的一个区域。什么是确保路由 url 如下所示的干净方法:
/公司/1234/联系人/456
/公司/1234/设施/679
如果有一种方法可以进入下一个领域,这似乎是一个好方法,但可能会使代码变得混乱。
对于我正在从事的项目,我们有公司。公司有联系方式和设施。根据业务规则,流程是您选择一家公司来访问联系人或设施。
编辑: 实体是公司、设施和联系人。
由于每个实体都有自己的工作流程,因此它们在代码中都有自己的一个区域。什么是确保路由 url 如下所示的干净方法:
/公司/1234/联系人/456
/公司/1234/设施/679
如果有一种方法可以进入下一个领域,这似乎是一个好方法,但可能会使代码变得混乱。
我认为您不需要使用区域
可以通过在 global.asax 中为每个“子控制器”定义路由来帮助引擎来做你想做的事情。(我已经假设Contact
并且Facility
是分开的controllers
?)
这确实意味着要非常具体地说明哪种模式去哪条路线,但我认为以下内容将满足您的需求。
在全局 asax 中添加这 2 个新路由(在默认路由之上):
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
and定义facilityId
为可选,但我希望它能给您一个想法?