我目前正在研究一個半大型MVC 2項目,我們擁有的關聯視圖和視圖模型的控制器數量正在變得非常大。爲了嘗試並提供一些分離,我一直在研究使用MVC 2的區域特徵並相應地重構項目。在控制器的每個區域設置多個區域,繼承自一個基礎控制器 - MVC
我面對的問題之一是我們對控制器有一個繼承層次,以便共享我們在具體控制器中使用的功能和屬性,然後公開我們希望處理的必要操作。
本質上講,我們現在有一個設置像這樣在我們的主控制器文件夾:
Controller (MVC)
+-- BaseController (Abstract)
+-- BaseWorkController (Abstract)
+-- BaseWorkAController (Abstract)
+-- ... a number of controllers exposing actions
+-- BaseWorkBControllers (Abstract)
+-- ... a number of controllers exposing actions
我每個工作控制器思維創造地區即
- 區/ WorkA
- 區/ WorkB
每個區域都有其關聯的視圖和視圖模型甚至模型。
但是,我似乎面臨的問題是我在哪裏放置BaseWorkController。可以將它保留在主控制器文件夾中,並且區域控制器只包含對該控制器的引用。另外,不同區域的代碼可能需要訪問不同的模型,甚至需要爲某些功能創建一些屬性。
這個設置看起來像是可以接受的區域使用。從我讀過的東西看來,這些東西似乎有助於我正在尋找的關注點和功能。但是,如果這是對功能的完全錯誤使用,我不想投資這麼做。
控制器代碼是否可以使用來自其他區域或主要核心控制器/模型/視圖文件夾的功能。
我承認樹很深。許多功能是繼承控制器根據需要使用的附加方法,通常是受保護的方法。他們不是特別大,特別是BaseWorkAControllers等我不確定我們如何重構這個,但我可能能夠擺脫這個水平,所以我會看看建議的模式。謝謝。 – dreza