找不到types或名称空间IHttpActionResult
这是我第一次在ASP.NET MVC4中创build一个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); }
任何人都可以帮我解决这个问题吗?
由于您使用的是Asp.Net 4.0,IHttpActionResult在名称空间System.Web.Http版本4.0中不可用,所以您必须将您的名称空间更新为版本5.0.0.0。 你可以通过右击引用中的System.Web.Http命名空间来检查你的命名空间版本,然后转到属性。 您可以通过右键单击您的解决scheme项目 – >pipe理解决scheme的NuGet包 – >searchAsp.Net WebAPI 2 – >selectAsp.Net WebAPI 2并单击pipe理来更新。 此外,您可以检查更新选项卡上是否可用,如果更新选项卡中可用,您可以从那里更新。 一旦你这样做了,通过参考中的System.Web.Http命名空间的属性确认版本。
这对我有用,希望也能为你效劳。
谢谢
当我从源代码pipe理中检出一个项目时,我遇到了类似的问题。
我在项目中参考了Microsoft ASP.NET Web API 2,但仍然无法编译该项目。
解决scheme是使用软件包pipe理器控制台重新安装软件包:
PM> update-Package Microsoft.AspNet.WebApi –reinstall
要解决IHttpActionResult引用错误,请使用NuGet添加引用来安装Web API2 Core lib。 DLL
在参考解决scheme资源pipe理器中,右键单击并selectpipe理nuget包。 (如果没有安装nuget)
在左侧的“pipe理NuGet包”窗口中单击联机,然后在右上angularsearchAPI 2.1并安装Microsoft ASP.NET Web API 2.1核心库。 (一旦安装安装button将变成一个绿色的检查)
之后,项目将重新加载,当它再次构buildIHttpActionResult引用错误将被解决,项目将build立成功。 你的问题很好,帮助了我。 希望这个答案有帮助!
检查这个链接来获取IHttpActionResult和所有的命名空间 。
该软件包包含在IIS上托pipeASP.NET Web API所需的一切。 ASP.NET Web API是一个框架,可以轻松构build到达各种客户端(包括浏览器和移动设备)的HTTP服务。 ASP.NET Web API是在.NET Framework上构buildRESTful应用程序的理想平台。
要安装Microsoft ASP.NET Web API 2,请在程序包pipe理器控制台或pipe理NuGet程序包中运行以下命令
PM> Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
我有类似的问题,重新安装将解决这个问题。 只需在Visual Studio 2013中进入工具> NuGet包pipe理器>包pipe理器控制台,并记下以下内容:
PM> update-Package Microsoft.AspNet.WebApi –reinstall
然后,清理解决scheme并构build/重build解决scheme。
注意:在我的情况下,进程显式检出了Web.config和packages.config文件,并删除了System.Web.Http dll文件。
您尝试使用的function是Web API 2的一部分。既然您提到您使用的是MVC 4,我希望您将要升级对MVC 5和Web API 2的引用。
这个解决scheme为我工作:
工具 – >库程序包pipe理器 – >程序包pipe理器控制台,然后键入:
安装程序包Microsoft.AspNet.WebApi – 版本5.0.0
update-Package Microsoft.AspNet.WebApi -reinstall
参考: http : //blog.bitlinkit.com/type-namespace-ihttpactionresult-not-found/
使用NuGet安装Web API2核心库。 DLL。 在安装Web API2之前,您可能需要更新Nuget,因为API2中的一些组件与旧的Nuget包不兼容。 我这样做了,问题解决了。
在我的情况下,更新System.Web.Http
到版本5.0.0.0后,我需要重新启动IDE才能解决此问题。
这个问题似乎发生在最近的两个项目中,我已经开始使用visual studio 2015.项目是一个ASP.Net MVC 5网站与mvc和web api组件。 在运行更新和清理不需要的nuget包之后,我复制了另一个类似项目的一些样板代码,并且没有find与IHttpActionResult和RouteAttribute相同的问题。
问题是由于在项目引用中引用的System.Web.Http.dll的不正确的版本。 默认情况下使用程序集的系统GAC版本。
为了解决这个问题,只需删除这个引用,并在Nuget包文件夹中添加对同一个程序集的引用:[project folder] \ packages \ Microsoft.AspNet.WebApi.Core.5.2.3 \ lib \ net45 \ System.Web.Http .DLL
你应该先检查你已经更新到所需版本的Microsoft.AspNet.WebApi.Core nuget包。