2010-09-03 47 views
1

目前我发现在每个控制器上都有一个单独的public static void RegisterRoutes(RouteCollection routes)方法是最方便的。然后在Global.asax的RegisterRoutes中,我调用所有这些方法。如何使用某种IoC(?)为ASP.NET MVC控制器自动注册路由?

当然,这很快失去控制。每当我添加一个新的控制器时,我都必须使用样板MyNewController.RegisterRoutes(routes)调用更新RegisterRoutes

我的第一直觉就是让所有我的控制器,从一些抽象ControllerBase它已经定义了RegisterRoutes方法获得,然后使用某种反射的找到所有ControllerBase -subclasses并调用它们的静态方法。

我的第二个直觉是意识到这可能是一个解决的问题,尤其是因为它听起来像这个IoC类型的东西,我最近才开始学习。所以在一些谷歌搜索没有真正把任何东西(可能是由于关键字不好),我想我会问StackOverflow。

回答

0

我用Mvc Turbine注册我的路线。你可以让每个控制器执行IRouteRegistrator并在那里注册你需要的路线。