上一篇《為ASP.NET MVC RC分離Controllers-Views項目後添加“腳手架”功能(一)》 中講到如何 分離Controllers和Views項目,並且為Controllers項目添加MVC RC的“腳手架”,可惜“腳手架”的功 能保留的過於完整,以至於自動創建和察看View頁面都會在當前項目中進行,除非你心甘情願每次創建完 成後手動將文件轉移到Views(Web)項目,否則這個“腳手架”的意義幾乎就失去了。並且,及時轉移了 .aspx之類的View文件,那麼查看還是在當前項目中進行,這可怎麼辦呢?本文將為此創造一個“一石二 鳥”的方法,可以同時解決View頁面新增和查看的問題。
View查看
由於沒功夫研究這個“腳手架”內部的機制(如果有朋友能夠實現hack的話也就不用這麼麻煩了,呵 呵),所以想到了一個變通的方法:能不能在Controller對應的地方加上一些“快捷方式”,然後當查看 的時候直接查找源文件呢?經過了一些嘗試,發現直接創快捷方式文件(.lnk)是行不通的。
於是又打起了MyMvc.Controllers.csproj的主意。經過一些測試研究,發現. Csproj文件支持一個 <Link>的標簽,可以在VS程序中起到“快捷方式”的效果(具體如何設置節點在本文後面提供的解 決方案程序和下載代碼中可見,這裡不再詳述)。
經過一系列測試,這些被Link的文件不會被編譯到MyMvc.Controllers.Dll中,OK,View的問題就此告 一段落,剩下的工作由統一的解決方案來完成。
View新增
既然MyMvc.Controllers中的View都是沒有實際意義的快捷方式,那麼新增的文件顯然也不能讓他留在 MyMvc.Controllers項目中,於是想到了“乾坤大挪移”——把新建的View自動移動到MyMvc.Web項目中, 並且在MyMvc.Controllers.csproj中將對應的文件編程一個“快捷方式”。
最終解決方案——MvcScaffoldTool
MvcScaffoldTool是本人原創的一個用於解決之前提到的腳手架創建、查看文件路徑的問題,同樣適用 於其它一些類型項目的其他地方。
既然要從外部入手,那麼最直接、最自動的方法當然是寫一個程序,用於自動“監控” MyMvc.Controllers中的狀態,當其發生變化的時候自動轉移文件並且處理對應的. Csproj文件。
由於很少做WinForm,所以粗制濫造了一個: