The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET MVC 開發心得分享 (16):在網站專案下運作

之前有很多人問我 ASP.NET MVC 到底可不可以在 Visual Studio 的網站專案(WebSite Project)模式下運作,也就是在 ASP.NET 動態編譯的架構下運行 ASP.NET MVC,事實上是沒問題且非常容易的,唯一的缺點就是會失去 Visual Studio 開發工具的有效支援,例如 Add Controller 或 Add View 等等的工作可能會變的沒辦法自動化等等。

1. 我們先在一個方案中建立一個基本的「網站專案」( WebSite Project ) 與一個 ASP.NET MVC 專案

2. 修改如上圖 WebSite2 專案的 web.config 讓專案本身能支援 ASP.NET MVC 所需的設定
   ( 如下圖的這些宣告都可以從 MvcApplication1 專案取得 )

調整 <system.web> / <compilation> / <assemblies> 載入與 ASP.NET MVC 相關的組件

調整 <system.web> / <pages> 下,新增 <namespaces> 宣告
【可參考:ASP.NET 如何預設匯入指定的命名空間(Namespace)

調整 <system.web> / <httpHandlers> 與 <httpModules> 下,新增以下宣告

如果你的網站會安裝到 IIS7 上面執行,那你也要修改 <system.webServer> 的設定

3. 在網站專案新增 Global.asax 檔案,並將 MvcApplication2 中的 Routing 相關程式碼複製進來

4. 將 Views, Scripts, Content 目錄移至 WebSite2 專案下,將 Controllers 目錄移至 App_Code 目錄下

5. 如果你希望讓首頁 ( http://localhost/ ) 也能執行 ASP.NET MVC 的話,那你也可以將 Default.aspx 也移至 WebSite2 專案,但有些地方要調整過才能符合 WebSite 專案的要求。

以上五個步驟完成後,ASP.NET MVC 就可以順利在 WebSite 專案的模式下運作,而且可以享用動態編譯的特性,你隨時可以修改 App_Code\Controllers 下的程式碼,而且立即生效!

備註:如果你要將此網站安裝在 IIS6 上,請記得要設定「萬用字元應用程式對應」,如下圖示: