將 MVC 添加到 ASP.NET 網站
我想將 MVC 支持添加到現有網站項目(不是 Web 應用程序項目)並有幾個問題。
- 為了獲得 Visual Studio 的 MVC 優點,看來我需要更新
.csproj文件的<ProjectTypeGuids>節點。網站項目中沒有csproj文件。- 看來我
Models需要Controllers在App_Code. 這是真的?我更喜歡將這些文件夾放在根目錄下。- 我
Views應該創建一個aspx和aspx.cs文件嗎?cshtml這種設置是否支持剃刀文件?任何其他回應表示讚賞。謝謝
我已經成功地將 ASP.NET MVC 3 添加到 Webforms 項目中,這裡有一些建議:
- 添加
Controllers為單獨的類庫項目,並從 Web 表單 web 項目中添加對此項目的引用- 我試圖獲得 VS MVC 支持(如 goto 控制器等),但將 GUID 添加
{E53F8FEA-EAE0-44A6-8774-FFD645390401}到.csproj文件中並沒有幫助。- 是的,您可以添加引用以從您的類庫中獲取會話。如果您想編寫單元測試,您可以隨時模擬它。
- 將文件夾添加
Views到根目錄Models內添加App_Code- 如果您使用的是 Razor,那麼您需要添加
System.Web.Razor和System.Web.WebPages引用- 如果您使用的是 Razor,請
Web.config根據此文章更新- 請記住,您可以將伺服器控制項添加到您的視圖中,只要它們不使用回發(我的 webforms 項目中有很多伺服器控制項必須使用)
對於 asp.net MVC2 及更高版本,MVC 團隊將核心功能分成三個不同的程序集,每個程序集都從通用 System.Web 程序集擴展而來:
- 系統.Web.路由
- System.Web.抽象
- 系統.Web.Mvc
通過這種分離,他們繼續使程序集“在中等信任伺服器環境中工作並且可以在 bin 中部署”。
這個功能的好處之一是,您不必具有特定的項目類型來執行 MVC。您只需要程序集、一些目錄和經過調整的 web.config。
為此,您只需將程序集放在項目的本地 bin 文件夾中,並對這些程序集進行必要的引用。完成此操作後,您就可以訪問 asp.net MVC。
以下是Wrox Professional ASP.NET MVC 1.0書中的一些詳細說明,可以幫助您入門:
在現有的 Web 表單應用程序中包含 MVC
將 ASP.NET MVC 功能添加到現有的 Web 窗體應用程序包括三個不同的步驟:
1、添加對ASP.NET MVC需要的三個核心庫的引用:System.Web.Mvc、System.Web.Routing和System.Web.Abstractions。
2. 將兩個目錄添加到您的應用程序:Controllers 和 Views。
3. 更新 Web.config 以在執行時載入三個程序集以及註冊 UrlRoutingModule HttpModule。
作為參考,這裡有幾個部落格/網站,其中包含一些更詳細的場景,可能會對您有所幫助:
混合 ASP.NET Webforms 和 ASP.NET MVC
Harmony 中的 ASP.NET WebForms 和 ASP.NET MVC
祝你好運,希望這對你有所幫助。