C# ApiController和IHttpActionResult

C# ApiController和IHttpActionResult,c#,asp.net,C#,Asp.net,我创建了一个基于ASP.NET Web API的应用程序,并按照以下教程操作: . 我正试图按照教程中的描述创建ApiController类,并实现IHttpActionResult接口,但编译器抱怨找不到它们的程序集 我的问题是,如何为ApiController和IHttpActionResult添加程序集 更新1 我通过nuget添加了Microsoft.AspNet.WebApi.Core,它向我显示了错误消息 更新2 错误消息 将此添加到您的使用中: using System.We

我创建了一个基于ASP.NET Web API的应用程序,并按照以下教程操作: .

我正试图按照教程中的描述创建
ApiController
类,并实现
IHttpActionResult
接口,但编译器抱怨找不到它们的程序集

我的问题是,如何为
ApiController
IHttpActionResult
添加程序集

更新1

我通过nuget添加了
Microsoft.AspNet.WebApi.Core
,它向我显示了错误消息

更新2 错误消息


将此添加到您的使用中:

using System.Web.Http;
另外,添加此nuget包:

在包管理器中运行此命令:

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>

您正在使用ASP.NET Web API 2的教程,但您选择的项目模板是针对ASP.NET Core的。这是两种不同的动物。要学习本教程,您应该从“ASP.NET 4.6.1”区域中选择“Web API”模板,或

ASP.NET Core()是为多平台开发而设计的,并使用MVC6运行。这本书中有一个很好的概念概述。下面是一个与这个问题相关的小片段:

使用ASP.NET5,我们正在进行一些架构更改,这些更改 使核心web框架更加精简和模块化。NET 5是 不再基于System.Web.dll,而是基于一组 粒度良好、功能完善的NuGet软件包允许您进行优化 你的应用程序必须满足你的需要


在Core中,所有控制器(包括API控制器)都继承自
控制器
基类。您尝试添加的程序集在DNXCORE50中不受支持,因为它们不是跨平台的。

错误说明了什么?是否存在依赖项错误?您可能需要使用特定版本的WebApi.Core。我使用5.2.3版,因为它与许多其他依赖项一起使用在您的启动文件中,这可能很有用4.6.1和5之间有什么不同?@zero\u编码我已经用更多的信息更新了我的答案。ASP.NET核心不是4.6.1的延续,它是一个全新的框架。那么我应该使用什么,ASP.NET 5还是4.6.1?哪一种是面向未来的?@zero_编码取决于您的用例和需求。核心不是。4.6.1将伴随我们很长一段时间,但ASP.NET核心是ASP.NET中跨平台和基于云的开发的未来。