將 Web API 添加到現有的 asp.net Web 表單應用程序
我的團隊想要從 WCF 升級到 Web API。我們有一個工作的 asp.net 網路表單應用程序,我們已經從 VS2010 導入到 VS2012。到目前為止,一切都很好。
但是現在當我嘗試創建一個單獨的 Web API 項目時,我發現沒有可用的 Web API 模板。我能找到的最接近的方法是創建一個 MVC 4 應用程序並將項目模板設置為 WebAPI。我遵循這種方式,一切都完美無缺。我有一個帶有範例控制器的工作 API,我可以通過從瀏覽器進行呼叫來呼叫它。
唯一的缺點是,這種特殊的方法帶來了自己的包袱。我創建的 MVC 4 項目包含 JQUERY 和其他庫,以及一些我可能不需要的其他文件夾。我想要的只是 Web API 結構——而不是額外的包袱。
我嘗試使用線上搜尋查找模板,但我找到的包無法正常工作並且評級非常差。
我希望我已經正確地說明了我的問題。我現在期待一些回饋:) 謝謝。
在 Visual Studio 2013 中
- 右鍵點擊 ASP.NET Web 窗體項目。
- 添加->添加腳手架項目…
- 在 Installed/Common/MVC/Web API 下選擇您希望使用的腳手架類型。
- 按照腳手架模板的說明進行操作。例如,當您選擇“Web API 2 Controller with read/write actions”或“Web API 2 Controller - Empty”時,系統會提示您輸入控制器名稱
- 然後,您需要將最近創建的控制器移動到最近創建的Controllers文件夾中。
結果
據我所知,Visual Studio 執行以下操作:
“ App_Start/WebApiConfig2.cs ”已創建。
控制器文件夾已創建。
編輯Web.config以在“system.webServer”中添加帶有內容的“handlers”元素。
添加了以下參考:
- System.Net.Http
- System.Net.Http.Formatting
- System.Web.Extensions
- System.Web.Http
- System.Web.Http.WebHost
packages.config更新為包括:
- “Microsoft.AspNet.WebApi”
- “Microsoft.AspNet.WebApi.Client”
- “Microsoft.AspNet.WebApi.Core”
- “Microsoft.AspNet.WebApi.WebHost”
筆記
隨後,我建議遵循相同的步驟,從右鍵點擊 Controllers 文件夾而不是項目開始。這會將新控制器放在 Controllers 文件夾中,而不是放在根級別。
執行上述步驟後,來自 Visual Studio 的自述文件:
Visual Studio 已將 ASP.NET Web API 2 的全套依賴項添加到項目“RowersCode.Web”中。
項目中的 Global.asax.cs 文件可能需要進行其他更改才能啟用 ASP.NET Web API。
- 添加以下命名空間引用:
* 使用 System.Web.Http; * 使用 System.Web.Routing; 2. 如果程式碼尚未定義 Application_Start 方法,請添加以下方法:
受保護的無效 Application_Start()
{
} 3. 將以下行添加到 Application_Start 方法的開頭:
GlobalConfiguration.Configure(WebApiConfig2.Register);
