2010-09-15 28 views
2

對於某些人來說,這一定是一個微不足道的問題,但我還沒有找到任何關於此的實際信息。如何告訴ASP.NET MVC在庫中查找控制器?

我有一個ASP.NET MVC的Web應用程序。因爲我喜歡編寫可重用的代碼,所以我想將我的控制器放入獨立的庫程序集中,並在多個Web應用程序中重用它們。

問題是,我如何告訴ASP.NET MVC它應該在另一個程序集中而不是Web應用程序本身中尋找控制器?

回答

3

您需要創建自己的ControllerFactory。

退房this鏈接

基本上,創建的ControllerFactory如上所述,然後在Global.asax中添加此行:

ControllerBuilder.Current.SetControllerFactory(new YourFactory()); 

告訴ASP.NET MVC使用您的ControllerFactory。

起腳是,當你定義你的路由,你需要給ASP.NET MVC一個「暗示」在何處這一集位於:

yourRoute.DataTokens = new RouteValueDictionary(
    new 
    { 
     namespaces = new[] { "SomeAssembly.Controllers" } 
    }); 

如果它不發現它,然後它會在常規名稱空間(Web應用程序)。

Here是另一個顯示如何創建自定義控制器工廠的鏈接。

祝你好運!

+0

謝謝,這正是我所尋找的。實際上,只需指定我的控制器所在的命名空間就足夠了! – Venemo 2010-09-16 00:06:21

+0

很酷。我從來沒有嘗試過整個命名空間的事情,但我目前使用控制器工廠進行依賴注入。很高興它的工作。 – RPM1984 2010-09-16 00:12:07