我有一個巨大的MVC應用程序,但不幸的是MVC區域並沒有在初始開發中使用。該應用程序變得如此模塊化,以至於我們認爲使用區域有很好的理由。將整個代碼移動到「Areas」結構是多麼容易或困難.. 是否有任何重大挑戰/代碼重做等等我必須注意的事情? 我可以創建新的區域並將控制器視圖模型移動到相應的桶中嗎?它可以正常工作嗎?我是在簡化事情嗎?如果有人已經採取此路線之前,將不勝感激反饋,意見..MVC代碼重構
Q
MVC代碼重構
4
A
回答
6
該應用程序將工作得很好的地區。它會使維護更容易,並且由於分離而在邏輯上進行查看。但是,你會遇到一些困境。
命名空間
首先將很可能是命名空間。當您將連接的邏輯或模型與依賴關係分開時,如果從屬類位於區域中,則可能需要更改其名稱空間引用。幸運的是,Visual Studio可以通過簡單的「解析」功能來處理這些問題。如果您嘗試編譯並向您顯示存在問題的所有位置,編譯器應該拋出。可能很難預見所有這些事件會發生在哪裏。但是,由於許多不同的控制器所使用的大多數應該位於同一個地方,所以很可能不需要使用許多指令。
路由
只是你使用的每一個動作環節將不得不改變,如果你要使用的區域。你將被迫改變它們來代表新的領域。
沒有區域(基):
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "" }, null)
特定區域:
@Html.ActionLink("Label For Link", "ActionName", "ControllerName", new { area = "SpecificAreaName" }, null)
您可能還需要修改任何代碼return RedirectToAction
你。
基地面積:
return RedirectToAction("ActionName", "ControllerName");
具體領域:
比這return RedirectToAction("ActionName", "ControllerName", new { Area = "SpecificAreaName" });
其他,你應該是不錯的。
相關問題
- 1. 重構代碼
- 2. Linq代碼重構
- 3. Rshiny:重構代碼
- 4. C#代碼重構
- 5. 重構.NET代碼
- 6. 重構Python代碼
- 7. 重構JavaScript代碼
- 8. 重構swift代碼
- 9. 重構SQL代碼
- 10. C#代碼重構?
- 11. jQuery代碼重構
- 12. 重構代碼java
- 13. 重構jQuery代碼
- 14. Javascript代碼重構
- 15. Ruby代碼重構
- 16. 重構JScript代碼
- 17. 重構Python代碼
- 18. 重構jQuery代碼
- 19. 代碼重構C#
- 20. 重構C#代碼
- 21. Scala重構重複代碼
- 22. Rails,重複代碼重構
- 23. 代碼重用和重構
- 24. 重構代碼重複
- 25. 重構重複jQuery代碼
- 26. MVC減少重複代碼
- 27. 代碼生成器與代碼重構
- 28. 重構的jQuery代碼的代碼
- 29. symfony中的重構代碼
- 30. 幫助重構PHP代碼
開啓視圖編譯功能可能會有所幫助,因此在編譯器移動時會檢查視圖的錯誤(避免它在運行時炸掉)。參見[本博客條目](http://www.tugberkugurlu.com/archive/how-to-detect-errors-of-our-asp-net-mvc-views-on-compile-time-blow-up-in -my-face-theory)的細節。 –