2013-12-12 57 views
15

我的團隊希望從WCF升級到Web API。我們有一個可用的asp.net web表單應用程序,我們已經從VS2010導入到VS2012。到現在爲止還挺好。將Web API添加到現有的asp.net web表單應用程序

但是現在,當我嘗試製作單獨的Web API項目時,我發現沒有可用的Web API模板。 我能找到的最接近的東西是創建一個MVC 4應用程序並將項目模板設置爲WebAPI。我遵循這種方式,一切都完美無缺。我有一個可以通過瀏覽器調用來調用的示例控制器的工作API。

唯一的缺點是,這種特殊的方法帶來了自己的包袱。我創建的MVC 4項目包含JQUERY和其他庫,以及其他一些我可能不需要的文件夾。我想要的只是Web API結構 - 而不是額外的行李。

我試圖找到一個使用在線搜索模板,但我發現的軟件包不能正常工作,因爲評價很差。 enter image description here

我希望我已經正確地說明了我的問題。我期待着一些反饋:)謝謝。

+0

這個博客可能有助於爲那些誰看這個問題=> http://forums.asp.net/t/1912278.aspx?How+to+get+WebAPI+only+project+in+ Visual + Studio + 2012 –

回答

18

在Visual Studio中的ASP.NET Web窗體項目2013

  1. 單擊鼠標右鍵。
  2. 添加 - >添加腳手架項...
  3. 安裝在/通用/ MVC /網絡API選擇您想要 使用支架式。
  4. 按照腳手架模板的說明進行操作。例如,當您選擇「具有讀/寫操作的Web API 2控制器」或「Web API 2 Controller - Empty」時,會提示您輸入控制器名稱
  5. 然後,您需要將最近創建的控制器移動到最近創建了控制器文件夾。

結果

從我所看到的,Visual Studio中執行以下操作:

  • App_Start/WebApiConfig2.cs」 被創建。
  • 控制器文件夾已創建。
  • Web.config被編輯爲添加「處理程序」元素與「system.webServer」中的內容。
  • 以下引用添加
    • System.Net.Http
    • System.Net.Http.Formatting
    • System.Web.Extensions程序
    • System.Web.Http
    • 系統.Web.Http.WebHost
  • packages.config is updated t o包括:
    • 「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。

  1. 添加以下命名空間引用:

    • 使用System.Web.Http;
    • using System.Web。路由;
  2. 如果代碼尚未定義的Application_Start方法中,添加以下方法:

    保護無效的Application_Start()

    {

    }

  3. 添加以下行到Application_Start方法的開頭:

    GlobalConfiguration.Configure(WebApiConfig2.Register);

+0

我沒有看到「添加腳手架項目...」 – Si8

+0

在VS2015中,它是「新腳手架項目...」 –

0

經過大量的研究,我已經能夠想出解決這個問題的方法。讓我說明我的解決方案,關於Visual Studio版本

VS 2012

正如我在問題中提到,有創造VS2012在Web API項目沒有明確的辦法。你必須做到這一點創建一個MVC 4應用程序,並將項目模板設置爲WebAPI。然後,一旦你完成了這一步,並且你的Web API功能正常,你可以安全地刪除額外的行李,比如Jquery庫和其他東西,因爲這些東西在你的項目中絕對沒有用處。

VS 2013

在VS2013存在。然而更好的方法,隨後添加和管理Web API項目。目前,我正在使用VS2013作爲Web API,所有事情都已按照我的意願落實到位。請看到這個鏈接,你會得到一個更好的主意

http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api

我希望這些信息將幫助所有這些新的Web API。尤其對於那些想要升級到Web API或將Web API添加到現有項目的用戶。

+0

@ daddy6Elbows。實際上,我的要求是在現有的Web窗體應用程序中添加Web API,因此我的問題標題爲「將Web API添加到現有的asp.net Web窗體應用程序」。然而,只是爲了回答你的問題,向MVC添加Web API可能沒有那麼不同。只需製作一個單獨的Web API項目,並將其引用到您的MVC中,或者從該項目中通過HTTP調用MVC中的方法。兩者都應該工作。 –

+1

是的,您正在研究如何將MVC添加到現有Web窗體應用程序,而不是MVC應用程序。我對這個問題的誤解表示歉意。我只是不認爲任何人尋找你原來的問題的答案會從你後來的答案中獲得很多的見解,因爲你沒有給出任何步驟,例子或任何東西,而只是一篇似乎只與半相關的文章的鏈接。我可能是錯的,如果沒有人問這個問題,也許沒關係。 – witttness

+0

我有一個外部網站是ASP.net Web窗體。我將我的Web API作爲文件系統發佈到一個文件夾中。我,然後將這些文件/文件夾複製到我在我的網站中創建的子文件夾,因此可以在外部訪問它。但是,當我試圖查詢API調用時,出現錯誤。我在做這個過程是否錯誤? – Si8

相關問題