MapRoute与通用控制器

时间:2010-02-26 18:40:43

标签: asp.net-mvc-2 asp.net-mvc-routing

是否可以使用MapRoute映射路由并指定通用控制器,例如

        context.MapRoute(
            "Dashboard_Edit", // Route name
            "dashboard/edit/{*pagePath}",
            new { controller = "Dashboard`1", action = "edit", pagePath = "home" }
            );

1 个答案:

答案 0 :(得分:0)

遗憾的是,默认控制器工厂不允许这样做。 “Dashboard`1”类型用于开放泛型类型,无法构造。换句话说,对于默认的控制器工厂,“controller”的唯一允许值是可以符合以下伪语法的值:

IController c = new SomeControllerType();

SomeControllerType必须有效(尽管没有“Controller”后缀或命名空间),并且它必须具有无参数构造函数。

您总是可以编写具有更高级功能的自定义控制器工厂,并了解如何构建泛型类型。