目前我发现在每个控制器上都有一个单独的public static void RegisterRoutes(RouteCollection routes)
方法是最方便的。然后在Global.asax的RegisterRoutes
中,我调用所有这些方法。如何使用某种IoC(?)为ASP.NET MVC控制器自动注册路由?
当然,这很快失去控制。每当我添加一个新的控制器时,我都必须使用样板MyNewController.RegisterRoutes(routes)
调用更新RegisterRoutes
。
我的第一直觉就是让所有我的控制器,从一些抽象ControllerBase
它已经定义了RegisterRoutes
方法获得,然后使用某种反射的找到所有ControllerBase
-subclasses并调用它们的静态方法。
我的第二个直觉是意识到这可能是一个解决的问题,尤其是因为它听起来像这个IoC类型的东西,我最近才开始学习。所以在一些谷歌搜索没有真正把任何东西(可能是由于关键字不好),我想我会问StackOverflow。