Het type of de naamruimte IHttpActionResult niet gevonden

Dit is de eerste keer dat ik een web-API-toepassing maak in ASP.NET MVC4. Ik opende een nieuw Web API-project en voegde een nieuwe controller toe met de naam ‘Product’. De onderstaande functie toont een foutnaamruimte niet gevonden.

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

Kan iemand mij helpen dit probleem op te lossen?


Antwoord 1, autoriteit 100%

Omdat u Asp.Net 4.0 gebruikt, is IHttpActionResult niet beschikbaar in Namespace System.Web.Http versie 4.0, dus u moet uw naamruimte bijwerken naar versie 5.0.0.0. U kunt uw naamruimteversie controleren door met de rechtermuisknop op System.Web.Http-naamruimte in verwijzingen te klikken en naar eigenschappen te gaan. U kunt dit bijwerken door met de rechtermuisknop op uw oplossingsproject te klikken->Beheer NuGet-pakketten voor oplossing->
Zoek naar Asp.Net WebAPI 2 ->Selecteer Asp.Net WebAPI 2 en klik op Beheren. U kunt ook controleren of het beschikbaar is op het update-tabblad, als het beschikbaar is op het update-tabblad, kunt u vanaf daar bijwerken. Zodra je dat hebt gedaan, bevestig je de versie door naar de eigenschappen van System.Web.Http-naamruimte in verwijzingen te gaan.

Dit werkt voor mij en hoop zal ook voor jou werken.

Bedankt


Antwoord 2, autoriteit 39%

Ik had een soortgelijk probleem toen ik een project uitcheckte vanuit mijn broncodebeheer.

Ik had de verwijzing naar Microsoft ASP.NET Web API 2 in het project, maar ik kon het project nog steeds niet compileren.

De oplossing was om het pakket opnieuw te installeren met behulp van de Package Manager Console:

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


Antwoord 3, autoriteit 21%

Om de IHttpActionResult-referentiefout op te lossen, voegt u een referentie toe met NuGet om de Web API2 Core-lib te installeren. dll

Klik in de oplossingsverkenner in de referenties met de rechtermuisknop en selecteer nuget-pakketten beheren. (indien niet installeer nuget)

Klik in het venster NuGet-pakketten beheren aan de linkerkant op online en zoek vervolgens in de rechterbovenhoek naar API 2.1 en installeer Microsoft ASP.NET Web API 2.1 Core Libraries. (Na installatie verandert de installatieknop in een groen vinkje)

voer hier de afbeeldingsbeschrijving in

Daarna wordt het project opnieuw geladen en wanneer het opnieuw wordt gebouwd, wordt de IHttpActionResult-referentiefout opgelost en zal het project succesvol worden gebouwd. Je vraag was goed en heeft me geholpen.
Hoop dat dit antwoord helpt!


Antwoord 4, autoriteit 12%

Controleer met deze link om de naamruimte voor IHttpActionResulten zo te krijgen.

Dit pakket bevat alles wat u nodig hebt om ASP.NET Web API op IIS te hosten. ASP.NET Web API is een raamwerk dat het gemakkelijk maakt om HTTP-services te bouwen die een breed scala aan clients bereiken, waaronder browsers en mobiele apparaten. ASP.NET Web API is een ideaal platform voor het bouwen van RESTful-applicaties op het .NET Framework.

Als u Microsoft ASP.NET Web API 2 wilt installeren, voert u de volgende opdracht uit in de Package Manager-console of beheert u NuGet-pakketten

PM> Installatiepakket Microsoft.AspNet.WebApi -Version 5.0.0


Antwoord 5, autoriteit 10%

Ik had een soortgelijk probleem & opnieuw installeren lost dit probleem op.
Ga gewoon naar
Gereedschap > NuGet-pakketbeheerder > Pakketbeheerconsole
in Visual Studio 2013 en noteer het volgende:-

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

Maak vervolgens de oplossing schoon en bouw/herbouw de oplossing.

Opmerking: in mijn geval heeft het proces expliciet de bestanden Web.config en packages.config uitgecheckt en ook het dll-bestand System.Web.Http verwijderd.


Antwoord 6, autoriteit 10%

Deze oplossing werkte voor mij:
Hulpmiddelen – > Bibliotheek Pakketbeheer -> Pakketbeheerconsole, typ vervolgens:
Installatiepakket Microsoft.AspNet.WebApi -Versie 5.0.0
update-pakket Microsoft.AspNet.WebApi – opnieuw installeren
Referentie: http://blog.bitlinkit.com/type-namespace-ihttpactionresult- niet gevonden/


Antwoord 7, autoriteit 6%

De functies die u probeert te gebruiken, maken deel uit van Web API 2. Aangezien u zei dat u MVC 4 gebruikt, verwacht ik dat u uw referenties wilt upgraden naar MVC 5 en Web API 2.

Lees meer over deze functies op http://www.strathweb.com/2013/06/ihttpactionresult-new-way-of-creating-responses-in-asp-net-web-api-2/


Antwoord 8, autoriteit 4%

Ter info: ik kreeg hetzelfde probleem bij het gebruik van .NET Core 3.1.

De oplossing was om IActionResultte gebruiken in plaats van IHttpActionResult.


Antwoord 9

NuGet gebruiken om de Web API2 Core lib te installeren. dll. Mogelijk moet u Nuget bijwerken voordat u Web API2 installeert, omdat sommige componenten in API2 niet compatibel zijn met het oude Nuget-pakket. Ik had het op deze manier gedaan en het probleem was opgelost.


Antwoord 10

In mijn geval moest ik na het updaten van System.Web.Httpnaar versie 5.0.0.0 de IDE opnieuw opstarten om dit probleem op te lossen.


Antwoord 11

Dit probleem lijkt zich voor te doen in 2 recente projecten die ik ben begonnen met visual studio 2015. Project is een ASP.Net MVC 5-website met mvc- en web-api-componenten. Na het uitvoeren van de updates en het opschonen van ongewenste nuget-pakketten, kopieerde ik wat standaardcode van een ander soortgelijk project en had hetzelfde probleem met IHttpActionResult en RouteAttribute niet gevonden.

Het probleem was te wijten aan de onjuiste versie van System.Web.Http.dll waarnaar wordt verwezen in de projectreferenties. Standaard wordt de systeem-GAC-versie van de assembly gebruikt.

Om dit op te lossen, verwijdert u deze verwijzing en voegt u een verwijzing naar dezelfde assembly toe in de Nuget-pakketmap: [projectmap]\packages\Microsoft.AspNet.WebApi.Core.5.2.3\lib\net45\System. Web.Http.dll

Controleer eerst of u de vereiste versie van het Microsoft.AspNet.WebApi.Core nuget-pakket hebt bijgewerkt.

Other episodes