簡體   English   中英

ASP.NET MVC:構造控制器

[英]ASP.NET MVC: Structuring Controllers

所以我正在着手一個ASP.NET MVC項目,雖然整體經驗很好,但我對控制器已經變成的意大利面條很不滿意。 我在網上看了看(CodeCampServer等等),他們似乎都遇到了同樣的問題,其中控制器方法非常一致地違反SRP(單一責任原則) - 例如一個控制器方法,如果請求是簡單的呈現視圖一個GET ,但更新的model ,如果它是一個POST 現在我有控制器方法負責整個應用程序中的多個邏輯路由 - 比如它檢查在表單上單擊了哪個button並采取相應的行動。 我可以使用JavaScript將每個按鈕單擊重定向到不同的表單動作,但是在那里也感覺不到......另一個大問題是魔術strings - ViewData["foo"] = blah;的擴散strings - ViewData["foo"] = blah; 長話短說,你們如何structure controller邏輯? 每個視圖一個巨型模型對象? 路由器有很多小controller methodsJavaScript嗎? 我的目標是可維護的代碼 - 隨着功能的積累,我開始滑下滑坡......

ASP.NET Preview 5(在CodePlex上提供 )有一個答案:[AcceptVerbs]屬性。 Phil Haack在博客文章中討論了它是如何使用的。

至於視圖數據魔術關鍵問題,這是一個有趣的問題。 如果你認為一個視圖是一堆半獨立的組件(特別是考慮到新的局部視圖支持),那么使一個強類型模型變得不太理想,因為視圖的幾個部分應該相對獨立於另一個。

不同的人如何處理這個問題? 我知道我只花了幾個小時來審查模型文件夾里面的混亂。 我發現創建文件夾有助於減少視覺混亂,使用匹配的命名空間也有幫助。

但我的控制器目前是巨石。 麻煩的是我一直專注於在項目中學習這一點(還有很多要梳理的)。

我現在正在很好地處理MVC,所以現在是時候審查復雜性並考慮將控制器修改為更好的命名和更清晰的功能。

其他人是否將控制器分解為子控制器? (如果有這樣的事情)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM