各位應該都知道 ASP.NET MVC 已經在 2009/1/27 發佈 RC 版,各位可以從這裡下載,而 RC 版的 Release Note 也可以從這裡下載,這次的改版有許多重大更新,因此建議各位詳細閱讀 Release Note。
我們在練習開發 ASP.NET MVC 的過程中時常會遇到瓶頸,由於目前缺乏許多正式且完整的文件,且網路上的資訊散落各地、版本不一,從 Alpha, Preview 1, ..., Preview 5, Beta, 一直到 RC 大約發展了約兩年時間,可想見網路上的資訊之混亂。
所以要瞭解 ASP.NET MVC 最好的方式就是直接讓 ASP.NET MVC 原始碼跟開發中的專案放在一起,若遇到任何疑問就可以立即查詢原始碼 ( 快速鍵: F12 , Go To Definition ) 進行瞭解,我個人就是透過這種方式瞭解不少 ASP.NET MVC 內部運作的細節。
今天我就來講解如何讓 ASP.NET MVC 專案與 MVC 原始碼共舞,雖然加入專案是件簡單的事,但加入 ASP.NET MVC 原始碼專案到你的專案裡還是有些必須特別注意的事項:
- 下載 ASP.NET MVC RC 1 Source Code
- 解壓縮後將 MVC\src\SystemWebMvc 目錄複製到你的方案目錄下
- 在 Visual Studio 方案中加入現有專案:System.Web.Mvc.csproj
- 移除現有 MVC 專案的 System.Web.Mvc 組件參考
- 在現有 MVC 專案的 References 中將 System.Web.Mvc 專案加入參考
- 開啟專案根目錄下的 web.config 設定檔,並找到 <system.web> –> <compilation> –> <assemblies> 將 System.Web.Mvc 組件那一行註解起來。
- 開啟專案 View 目錄下的 web.config 設定檔,將 <system.web> –> <pages> 的 pageParserFilterType 屬性修改成:
System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
如果不這樣改,若要在 View 裡面使用強型別的 Model 物件就會編譯錯誤。
註:在 View 裡面使用 Model 強型別這特色是從 RC 版才開始有的。
---
上述步驟就屬第 7 步驟花我最多時間研究,但最後終於找出成功與原始碼共舞的方法了,請享用!
---
這種與原始碼一起運作的方式僅建議用在開發研究時使用,若未來要將專案部署到正式機時,記得將步驟還原後重新建置一次,否則你就必須要將自行建置的 System.Web.Mvc.dll 組件一併部署到正式機,不過我不建議用這種作法,除非你有修改 System.Web.Mvc 專案的原始碼 (當然也不建議這麼做)。
相關連結