找不到类型或命名空间IHttpActionResult

BPX*_*BPX 57 asp.net-mvc namespaces

这是我第一次在ASP.NET MVC4中创建Web API应用程序.我打开了一个新的Web API项目并添加了一个名为"Product"的新控制器.下面给出的函数显示未找到错误名称空间.

public IHttpActionResult GetProduct(int id) 
{
    var product = products.FirstOrDefault((p) => p.Id == id);
    if (product == null)
    {
        return NotFound();
    }
    return Ok(product);
 }
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

小智 94

由于您使用的是Asp.Net 4.0,因此命名空间System.Web.Http版本4.0中不提供IHttpActionResult,因此您必须将命名空间更新为5.0.0.0版.您可以通过右键单击引用中的System.Web.Http命名空间来检查命名空间版本,然后转到属性.您可以通过右键单击解决方案项目 - >管理解决方案的NuGet包 - >搜索Asp.Net WebAPI 2 - >选择Asp.Net WebAPI 2并单击管理来更新此项.您还可以检查它是否在更新选项卡上可用,如果它在更新选项卡中可用,您可以从那里更新.完成后,通过转到引用中的System.Web.Http命名空间的属性来确认版本.

这对我有用,希望对你也有用.

谢谢

  • 我必须从在线选项卡安装Web API 2.2. (4认同)

小智 36

当我从源代码控制中检出项目时,我遇到了类似的问题.

我在项目中引用了Microsoft ASP.NET Web API 2,但我仍然无法编译该项目.

解决方案是使用Package Manager控制台重新安装软件包:

PM> update-Package Microsoft.AspNet.WebApi –reinstall


Cat*_*tto 20

要解决IHttpActionResult引用错误,请使用NuGet添加引用以安装Web API2 Core lib.DLL

在参考文献的解决方案资源管理器中右键单击并选择管理nuget包.(如果没有安装nuget)

在左侧的manage NuGet Packages窗口中单击Online,然后在右上角搜索API 2.1并安装Microsoft ASP.NET Web API 2.1核心库.(安装完成后,安装按钮将变为绿色检查)

在此输入图像描述

之后,项目将重新加载,当它再次构建时,将解决IHttpActionResult引用错误并且项目将成功构建.你的问题很好,帮助了我.希望这个答案有帮助!


kas*_*sim 10

检查此链接以获取IHttpActionResult和所有的命名空间.

此程序包包含在IIS上承载ASP.NET Web API所需的一切.ASP.NET Web API是一个框架,可以轻松构建可覆盖广泛客户端的HTTP服务,包括浏览器和移动设备.ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台.

要安装Microsoft ASP.NET Web API 2,请在程序包管理器控制台或管理NuGet程序包中运行以下命令

PM> Install-Package Microsoft.AspNet.WebApi -Version 5.0.0


Kun*_*osh 9

我有类似的问题,重新安装将解决这个问题.只需在Visual Studio 2013中转到工具> NuGet包管理器>包管理器控制台,并记下以下内容: -

PM> update-Package Microsoft.AspNet.WebApi –reinstall
Run Code Online (Sandbox Code Playgroud)

然后,清理解决方案并构建/重建解决方案.

注意:在我的情况下,该进程显式检出了Web.config和packages.config文件,并删除了System.Web.Http dll文件.


z0m*_*bi3 7

此解决方案适用于我:
工具 - >库包管理器 - >包管理器控制台,然后键入:
Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
update-Package Microsoft.AspNet.WebApi -reinstall
参考:http:// blog.bitlinkit.com/type-namespace-ihttpactionresult-not-found/


Mat*_*w K 6

您尝试使用的功能是Web API 2的一部分.由于您提到您正在使用MVC 4,我希望您希望升级对MVC 5和Web API 2的引用.

有关这些功能的更多信息,请访问http://www.strathweb.com/2013/06/ihttpactionresult-new-way-of-creating-responses-in-asp-net-web-api-2/


Oli*_*ain 5

仅供参考,我在使用 .NET Core 3.1 时遇到了同样的问题。

解决方案是使用IActionResult而不是IHttpActionResult.