1

对于我正在从事的项目,我们有公司。公司有联系方式和设施。根据业务规则,流程是您选择一家公司来访问联系人或设施。

编辑: 实体是公司、设施和联系人。

由于每个实体都有自己的工作流程,因此它们在代码中都有自己的一个区域。什么是确保路由 url 如下所示的干净方法:

/公司/1234/联系人/456

/公司/1234/设施/679

如果有一种方法可以进入下一个领域,这似乎是一个好方法,但可能会使代码变得混乱。

4

1 回答 1

2

我认为您不需要使用区域

可以通过在 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% 了解代码,您可能需要将contactIdand定义facilityId为可选,但我希望它能给您一个想法?

于 2011-09-20T12:48:32.077 回答