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並在那裏註冊你需要的路線。