ASP.NET MVC:看 MVC 源碼,學習:如何將 Area 中的 Controller 放到獨立的程序集?


背景

本文假設您已經熟悉了 ASP.NET MVC 的常規開發方式、執行模型和關鍵擴展點,這里主要說一下如何使用 ASP.NET MVC 的源代碼解決一些問題。

如何將 Area 中的 Controller 放到獨立的程序集?

為了更好的組合代碼,我們都會使用 Area 划分我們的項目,也會把 Controller 移動到獨立的程序集,多數情況這回導致問題。

項目結構

問題出現在哪里了?

初步原因分析是 DefaultController 的 Namespace 不匹配 TestAreaRegistration 的 Namespace,我們把 DefaultController 的 Namespace 修改的成 TestAreaRegistration 的 Namespace,然后就OK了。

看到這里基本就可以解決問題了,我們可以修改 AreaRegistrationContext 的 Namespaces,

深入 MVC 源代碼

想了解 AreaRegistrationContext 的 Namespaces 如何構造的就需要看 MVC 的源代碼了,見下圖:

看到了 GetType.Namespace; 是不是就悟了,不難想象 AreaRegistrationContext.MapRoute 使用了他的 Namespaces 屬性,見下圖:

備注

如果你對 MVC 路由中的 Namespace 有所理解,解決本文的問題會有很多方案,這里不再贅述。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM