2009-07-30 150 views
1
routes.MapRoute(
    "Default", // Route name 
    "{controller}/{action}/{id}", // URL with parameters 
    new { controller = "My", action = "MyFolder", id = "" } // Parameter defaults 
); 

上述代碼將有助於調用MyFolder動作中的視圖,該動作位於同一項目的MyController中。ASP.NET MVC體系結構

如果MyController以不同的項目形式存在於我的活動項目中,那該怎麼辦?如何調用相應的視圖?

+0

你試過了嗎?我的理解是,MVC將在所有引用中搜索MyController。 – 2009-07-30 12:49:22

+0

選中此項: - [SO-asp.net mvc把控制器放到一個單獨的項目中](http://stackoverflow.com/questions/401376/asp-net-mvc-put-controllers-into-a-separate-project) 請不要考慮以下幾點:: 可維護性 可擴展性 增量開發(比方說,我們有一個單獨的DLL某些功能產品總數這是在我的項目非常有用的(例如將實現虛擬地球) – 2009-07-30 17:43:24

+0

從上一頁繼續) 通過使用ControllerFactory,我們正在模擬對以上幾點非常有利的接口實現設計。 – PadmakarKulkarni 2009-07-31 12:02:06

回答

1

如果MyController控制器類位於不同的項目中,則創建路由將失敗,因爲當應用程序啓動時,MVC將使用後綴'Controller'反映執行程序集中的所有類。如果找不到相應的控制器名稱,則應用程序將無法啓動。

我試圖在不同的項目中移動/訪問控制器(一個很好的例子是在管理工具項目中,您可能需要分離應用程序的某些方面)。這導致了錯誤。

如果有人知道這是不對的,那麼請讓我知道,因爲我會被證明是錯誤的這一個。然而,我所有的觀察和工作都指出了它沒有的結論(即使這兩個項目在同一個解決方案中)。

0

丹說的是正確的。要在另一個項目中使用控制器,您需要擴展DefaultControllerFactory。