2016-05-09 60 views
3

我創建一個基於ASP.NET Web API的應用程序,並按照以下教程: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/action-results
enter image description hereApiController和IHttpActionResult

我試圖固有ApiController類作爲教程DESCRIPT,也可以實現IHttpActionResult接口,但是編譯器會抱怨,說他們的組件未能找到。

我的問題,如何添加程序集爲ApiControllerIHttpActionResult

更新1

我通過的NuGet添加Microsoft.AspNet.WebApi.Core,它顯示了我的錯誤信息 enter image description here

更新2 錯誤消息
enter image description here
enter image description here

+0

錯誤是什麼意思?是否有任何依賴性錯誤?您可能想要使用特定版本的WebApi.Core。我使用5.2.3版本,因爲它與許多其他依賴關係一起玩。 – smoksnes

+0

嘗試在您的啓動文件 – Eldho

+0

中添加'public void ConfigureServices(IServiceCollection services) services.AddMvc();'這可能是有用的http://docs.asp.net/en/latest/tutorials/first-web-api。 html – Eldho

回答

2

您正在使用的ASP.NET Web API 2的教程,但是你所選擇的項目模板是ASP.NET的核心。這是兩種不同的野獸。要學習本教程,您應該從「ASP.NET 4.6.1」區域或use a tutorial for ASP.NET Core中選擇「Web API」模板。

ASP.NET Core(previous called ASP.NET 5)專爲多平臺開發而設計,並可在MVC6上運行。 official documentation有一個很好的概念概述。下面是有關這個問題的一小片段:

在ASP.NET 5,我們進行大量的架構變化是 使核心網絡架構更爲簡潔,更加模塊化。 ASP.NET 5不再基於System.Web.dll,而是基於一組 精細且具有充分條件的NuGet包,從而允許您優化 您的應用程序以滿足您的需求。

在內核中,所有控制器(包括API控制器)都繼承自基類Controller。您嘗試添加的程序集在DNXCORE50中不受支持,因爲它們不是跨平臺的。

+0

4.6.1和5之間有什麼不同? –

+0

@zero_coding我用更多的信息更新了我的答案。 ASP.NET Core不是4.6.1的延續,它是一個全新的框架。 –

+0

那麼,我應該使用什麼,ASP.NET 5或4.6.1?未來導向是什麼? –

0

添加此您usings:

using System.Web.Http; 

此外,添加此的NuGet包:

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Core/

運行這在你的包管理器:

Install-Package Microsoft.AspNet.WebApi.Core 

或者,也許這一點,如果你想有一個特定的版本:

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3 

它往往會將此到你的web.config:

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
    </dependentAssembly>