Подтвердить что ты не робот

Тип или пространство имен IHttpActionResult не найдено

Это первый раз, когда я создаю приложение веб-API в ASP.NET MVC4. Я открыл новый проект Web API и добавил новый контроллер под названием "Продукт". В приведенной ниже функции показано, что пространство имен ошибок не найдено.

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

Может ли кто-нибудь помочь мне решить эту проблему?

4b9b3361

Ответ 1

Поскольку вы используете Asp.Net 4.0, IHttpActionResult недоступен в Namespace System.Web.Http версии 4.0, поэтому вам нужно обновить пространство имен до версии 5.0.0.0. Вы можете проверить свою версию пространства имен, щелкнув правой кнопкой мыши пространство имен System.Web.Http в ссылках и перейти к свойствам. Вы можете обновить это, нажав правой кнопкой мыши на проект решения → Управление пакетами NuGet для решения- > Поиск Asp.Net WebAPI 2 → Выберите Asp.Net WebAPI 2 и нажмите "Управление". Также вы можете проверить, доступна ли она на вкладке "Обновление", если она доступна на вкладке "Обновление", которую вы можете обновить оттуда. После того, как вы это сделали, подтвердите версию, перейдя к свойствам пространства имен System.Web.Http в ссылках.

Это работает для меня, и надежда тоже будет работать для вас.

Спасибо

Ответ 2

У меня была аналогичная проблема, когда я проверил проект из моего исходного элемента управления.

У меня была ссылка на Microsoft ASP.NET Web API 2 в проекте, но я все еще не смог скомпилировать проект.

Решение заключалось в том, чтобы повторно установить пакет с помощью консоли диспетчера пакетов:

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

Ответ 3

Чтобы устранить ошибку ссылки IHttpActionResult, добавьте ссылку, используя NuGet, чтобы установить базовую библиотеку Web API2. dll

В проводнике решений в ссылках щелкните правой кнопкой мыши и выберите управление пакетами nuget. (если не установить nuget)

В окне управления пакетами NuGet слева нажмите онлайн, затем в верхнем правом порядке найдите API 2.1 и установите основные библиотеки Microsoft ASP.NET Web API 2.1. (После установки кнопка установки изменится на зеленый).

enter image description here

После этого проект перезагрузится, и когда он будет создан снова, ошибка ссылки IHttpActionResult будет решена, и проект будет успешным. Ваш вопрос был хорошим и помог мне. Надеюсь, этот ответ поможет!

Ответ 4

Проверьте эту ссылку, чтобы получить пространство имен для IHttpActionResult и все.

Этот пакет содержит все необходимое для размещения веб-API ASP.NET в IIS. ASP.NET Web API - это структура, которая упрощает создание HTTP-сервисов, которые охватывают широкий круг клиентов, включая браузеры и мобильные устройства. ASP.NET Web API - идеальная платформа для создания приложений RESTful на платформе .NET Framework.

Чтобы установить Microsoft ASP.NET Web API 2, запустите следующую команду в консоли диспетчера пакетов или выполните управление пакетами NuGet

PM > Установочный пакет Microsoft.AspNet.WebApi -Version 5.0.0

Ответ 5

У меня была аналогичная проблема, и повторная установка решит эту проблему. Просто иди Инструменты > Диспетчер пакетов NuGet > Консоль диспетчера пакетов в Visual Studio 2013 и запишите следующее: -

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

Затем очистите решение и постройте/перестройте решение.

Примечание. В моем случае процесс явно проверил файлы Web.config и packages.config, а также удалил файл dll System.Web.Http.

Ответ 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/

Ответ 8

Использование NuGet для установки Web API2 Core lib. длл. Возможно, вам придется обновить Nuget перед установкой Web API2, поскольку некоторые компоненты API2 несовместимы со старым пакетом Nuget. Я сделал это, и проблема была решена.

Ответ 9

В моем случае после обновления System.Web.Http до версии 5.0.0.0 мне пришлось перезапустить среду IDE, чтобы исправить эту проблему.

Ответ 10

Эта проблема, похоже, происходит в двух последних проектах, которые я начал использовать visual studio 2015. Project - это веб-сайт ASP.Net MVC 5 с компонентами mvc и web api. После запуска обновлений и очистки нежелательных пакетов 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.