MVC 3 AREAS - 层次结构工作流程

时间:2011-09-20 11:44:44

标签: c# c#-4.0 asp.net-mvc-3-areas

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

修改 实体是公司,设施和联系人。

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

/公司/ 1234 /接触/ 456

/公司/ 1234 /设施/ 679

如果有一种方法可以让下一个区域成为一种好方法,但可能会使代码变得混乱。

1 个答案:

答案 0 :(得分:2)

我认为你不需要使用区域

通过在global.asax中为每个“子控制器”定义路由以帮助引擎,可以完成所需的操作。 (我假设ContactFacility是分开的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%的代码,您可能需要将contactIdfacilityId定义为可选,但我希望它能为您提供一个想法?