web-dev-qa-db-ja.com

タイプまたは名前空間IHttpActionResultが見つかりません

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);
 }

誰でもこの問題を解決するのを手伝ってくれますか?

57
BPX

Asp.Net 4.0を使用しているため、IHttpActionResultは名前空間System.Web.Httpバージョン4.0では使用できないため、名前空間をバージョン5.0.0.0に更新する必要があります。参照でSystem.Web.Http名前空間を右クリックし、プロパティに移動して、名前空間のバージョンを確認できます。これを更新するには、ソリューションプロジェクトを右クリックして、[ソリューションのNuGetパッケージを管理]、[Asp.Net WebAPI 2を検索]、[Asp.Net WebAPI 2を選択して、[管理]をクリックします。また、更新タブで使用できるかどうかを確認できます。更新タブで使用できる場合は、そこから更新できます。それが完了したら、参照のSystem.Web.Http名前空間のプロパティに移動してバージョンを確認します。

これは私にとってはうまくいきますし、あなたにとってもうまくいくと思います。

ありがとう

94
Chandra Malla

ソース管理からプロジェクトをチェックアウトすると、同様の問題が発生しました。

プロジェクトにMicrosoft ASP.NET Web API 2への参照がありましたが、プロジェクトをコンパイルできませんでした。

解決策は、パッケージマネージャーコンソールを使用してパッケージを再インストールすることでした。

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

35
user3392357

IHttpActionResult参照エラーを解決するには、NuGetを使用して参照を追加し、Web API2 Core lib。dllをインストールします

ソリューションエクスプローラーの参照で右クリックし、[nugetパッケージの管理]を選択します。 (ない場合は、nugetをインストールします)

左側の[NuGetパッケージの管理]ウィンドウでオンラインをクリックし、右上でAPI 2.1を検索して、Microsoft ASP.NET Web API 2.1コアライブラリをインストールします。 (インストールボタンをインストールすると、緑色のチェックに変わります)

enter image description here

その後、プロジェクトがリロードされ、再度ビルドされると、IHttpActionResult参照エラーが解決され、プロジェクトが正常にビルドされます。あなたの質問は良かったし、助けてくれました。この答えがお役に立てば幸いです!

20
Catto

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>インストールパッケージMicrosoft.AspNet.WebApi -Version 5.0.0

10
kasim

同様の問題が発生し、再インストールするとこの問題が解決します。 Visual Studio 2013の[ツール]> [NuGetパッケージマネージャー]> [パッケージマネージャーコンソール]に移動し、以下を書き留めます。

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

次に、ソリューションをクリーンアップし、ソリューションをビルド/再ビルドします。

注:私の場合、プロセスはWeb.configファイルとpackages.configファイルを明示的にチェックアウトし、System.Web.Http dllファイルも削除しました。

9
Kuntal Ghosh

このソリューションは私のために働いた:
ツール–>ライブラリパッケージマネージャー->パッケージマネージャーコンソール、次に入力:
インストールパッケージMicrosoft.AspNet.WebApi -Version 5.0.0
update-Package Microsoft.AspNet.WebApi –reinstall
参照: http://blog.bitlinkit.com/type-namespace-ihttpactionresult-not-found/

7
z0mbi3

使用しようとしている機能はWeb API 2の一部です。MVC4を使用していると述べたので、MVC 5とWeb API 2への参照をアップグレードすることを期待します。

これらの機能の詳細については、 http://www.strathweb.com/2013/06/ihttpactionresult-new-way-of-creating-responses-in-asp-net-web- api-2 /

6
Matthew K

私の場合、System.Web.Httpをバージョン5.0.0.0に更新した後、この問題を修正するためにIDEを再起動する必要がありました。

1
mouse m.d.

NuGetを使用してWeb API2 Core libをインストールします。 dll。 API2の一部のコンポーネントは古いNugetパッケージと互換性がないため、Web API2をインストールする前にNugetを更新する必要がある場合があります。このようにして、問題は解決しました。

1
anhdktk

この問題は、Visual Studio 2015の使用を開始した最近の2つのプロジェクトで発生するようです。プロジェクトは、mvcおよびweb apiコンポーネントを備えたASP.Net MVC 5 Webサイトです。更新プログラムを実行し、不要なnugetパッケージをクリーンアップした後、別の同様のプロジェクトから定型コードをコピーしましたが、IHttpActionResultとRouteAttributeが見つからないという同じ問題がありました。

この問題は、プロジェクト参照で参照されているSystem.Web.Http.dllのバージョンが正しくないことが原因でした。デフォルトでは、アセンブリのシステムGACバージョンが使用されます。

これを修正するには、単にこの参照を削除し、Nugetパッケージフォルダーの同じアセンブリへの参照を追加します。[プロジェクトフォルダー]\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System.Web.Http .dll

最初に、Microsoft.AspNet.WebApi.Core nugetパッケージの必要なバージョンに更新されていることを確認する必要があります。

0
kas