相信很多用webform的程序猿都習慣性的使用虛擬目錄的形式來對一個程序添加新的功能,那么在mvc下該如何來弄呢?
首先得有一個項目基層的項目,然后我們在這個項目的基礎上新增一個功能模塊,例如信息發布功能
此時我們不想去重新編譯基層的項目,只是在此基礎上新增個功能,所以我們通過添加虛擬目錄來完成
下圖是目錄結構,我們的虛擬目錄掛在Areas下面(不了解區域的參考http://www.cnblogs.com/jyan/archive/2012/07/25/2607752.html)
下面開始我們添加信息發布模塊
一、新建一個空的MVC項目
只留下Controllers、Models、Views、Web.config
Web.config可以刪也可以留,有時會碰到razor視圖沒有代碼提示的問題,建議還是留着吧
二、添加路由注冊
添加一個類,繼承AreaRegistration,按照規范類名為項目名+AreaRegistration
1 using System.Web.Mvc; 2 3 namespace InformationTest 4 { 5 public class InformationTestAreaRegistration : AreaRegistration 6 { 7 public override string AreaName 8 { 9 get 10 { 11 return "InformationTest"; 12 } 13 } 14 15 public override void RegisterArea(AreaRegistrationContext context) 16 { 17 context.MapRoute( 18 "InformationTest_default", 19 "InformationTest/{controller}/{action}/{id}", 20 new { action = "Index", id = UrlParameter.Optional } 21 ); 22 } 23 } 24 }
最終的結構就是這樣的
大家會發現這個結構和Areas里的結構式一樣的,沒錯我們這里只是把原本的Areas以一個項目的形式剝離出來了
三、將InformationTest.dll拷貝到主項目的bin文件夾下
四、在IIS里添加虛擬目錄
希望對大家有幫助,有什么更好的方式,歡迎大家來交流