Asp.net

將 MVC 添加到 ASP.NET 網站

  • December 19, 2019

我想將 MVC 支持添加到現有網站項目(不是 Web 應用程序項目)並有幾個問題。

  1. 為了獲得 Visual Studio 的 MVC 優點,看來我需要更新.csproj文件的<ProjectTypeGuids>節點。網站項目中沒有csproj文件。
  2. 看來我Models需要ControllersApp_Code. 這是真的?我更喜歡將這些文件夾放在根目錄下。
  3. Views應該創建一個aspxaspx.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.RazorSystem.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

祝你好運,希望這對你有所幫助。

引用自:https://stackoverflow.com/questions/7194558