2012-05-02 35 views
0

我想爲目錄中的每個視圖分開我的控制器邏輯,而不是將它全部放在一個控制器中,因爲我不想在一個控制器中執行很多操作。任何方式來實現這一目標?目錄中每個視圖的不同控制器?

Views-- 
    FooFolder 
      Fooview.cshtml 
      Barview.cshtml 


Controllers-- 
    FooController.cs 
    BarController.cs 
+0

出於好奇,你爲什麼要這麼做? – MilkyWayJoe

+1

您可以使用部分類 - 它至少會將邏輯分成多個文件。我喜歡保持我的控制器苗條,所以我沒有真正遇到過多的邏輯... –

+0

Barview.cshtml不應該在BarFolder中嗎?約定是每個Controller有一個Views文件夾,對嗎?所以,自己創建控制器和視圖文件夾。 – DOK

回答

1

沒有要求有一定的文件夾視圖或動作以特定控制器。這只是一個慣例,您可以通過替換視圖引擎或更改路徑定義或明確指定視圖路徑來更改它。但是,如果要分離控制器邏輯,則啓動的位置不與控制器本身,而是通過將邏輯卸載到其他位置的業務方法並從控制器調用該方法。

+0

同意。如果您發現您的控制器操作正在隨着邏輯而膨脹,那麼我建議您觀看[將您的控制器放在飲食上](http://www.viddler.com/v/b568679c)視頻。 – Dangerous

+0

這不是關於卸載邏輯。我將擁有許多可處理事件的視圖,並且將每個控制器的操作方法保留爲一個較小的數字會很好,並且我可能希望爲某些控制器注入服務,而不是其他控制器。 – Suedeuno

相關問題