Шаги, которые мне нужно было выполнить:
- Добавить ссылку на
System.Web.Http.WebHost
.
- Добавить
App_Start\WebApiConfig.cs
(см. Фрагмент кода ниже).
- Импортировать пространство имен
System.Web.Http
в Global.asax.cs
.
- Звоните
WebApiConfig.Register(GlobalConfiguration.Configuration)
в MvcApplication.Application_Start()
(в файле Global.asax.cs
), перед тем регистрации маршрута веб - приложения по умолчанию, которые в противном случае приоритет.
- Добавьте контроллер, производный от
System.Web.Http.ApiController
.
После этого я смог бы извлечь урок из вашего руководства (Ваш первый веб-API ASP.NET), чтобы определить мой контроллер API.
App_Start \ WebApiConfig.cs:
using System.Web.Http;
class WebApiConfig
{
public static void Register(HttpConfiguration configuration)
{
configuration.Routes.MapHttpRoute("API Default", "api/{controller}/{id}",
new { id = RouteParameter.Optional });
}
}
Global.asax.cs:
using System.Web.Http;
...
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
WebApiConfig.Register(GlobalConfiguration.Configuration);
RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Обновление 16.10.2015:
У Word есть это, пакет NuGet Microsoft.AspNet.WebApi должен быть установлен для работы вышеупомянутого.
System.Net.Http
, но кроме этого, это работало как шарм!ОБНОВЛЕНИЕ 22/22/2013 - это последний пакет WebApi:
Оригинальный ответ (это более старый пакет WebApi)
Больше деталей .
источник
Install-Package Microsoft.AspNet.WebApi
сейчас. См. Nuget.org/packages/Microsoft.AspNet.WebApiЧтобы добавить WebAPI в мой проект MVC 5.
Откройте консоль диспетчера пакетов NuGet и запустите
Добавить ссылки
System.Web.Routing
,System.Web.Net
иSystem.Net.Http
dll, если не там ужеЩелкните правой кнопкой мыши папку контроллеров> добавьте новый элемент> веб> Добавить контроллер веб-API
Web.config будет соответственно изменен VS
Добавить
Application_Start
метод, если не там ужеДобавьте следующий класс (я добавил в файл global.asax.cs)
Измените метод веб-API соответственно
Перестройте и протестируйте
Создайте простую HTML-страницу
источник
Как только вы добавляете «WebApi Controller» в папку контроллеров, Visual Studio автоматически заботится о зависимостях;
источник
Install-Package Microsoft.AspNet.WebApi
2. Добавьте новый элемент «Класс контроллера Web API (v2.1)». Результат: добавляет контроллер api, но не меняетсяApplication_Start
. С Оуэном.Вы можете установить из Nuget как изображение ниже:
Или запустите приведенную ниже командную строку в консоли диспетчера пакетов:
источник
Перед тем, как вы начнете объединять проекты MVC и Web API, я бы посоветовал прочитать о плюсах и минусах, чтобы разделить их на различные проекты. Одна очень важная вещь (моя собственная) - это системы аутентификации, которые совершенно разные.
Если вам нужно использовать аутентифицированные запросы как в MVC, так и в веб-API, вы должны помнить, что веб-API является RESTful (не нужно поддерживать сеанс, простые HTTP-запросы и т. Д.), А MVC - нет.
Чтобы увидеть различия реализаций, просто создайте 2 разных проекта в Visual Studio 2013 из шаблонов: один для MVC и один для веб-API (не забудьте включить «Индивидуальную аутентификацию» во время создания). Вы увидите много различий в AuthencationControllers.
Так что будьте в курсе.
источник
ПРИМЕЧАНИЕ: это просто сокращение этого ответа выше
Откройте консоль диспетчера пакетов NuGet и запустите
Добавить ссылки
System.Web.Routing
,System.Web.Net
иSystem.Net.Http
dll, если не там ужеДобавьте следующий класс
Добавьте
Application_Start
метод, если его там еще нет (в файле global.asax.cs)Щелкните правой кнопкой мыши папку контроллеров> добавьте новый элемент> веб> Добавить контроллер веб-API
источник
Вышеупомянутое решение работает отлично. Я предпочитаю выбирать опцию Web API при выборе шаблона проекта, как показано на рисунке ниже
Примечание . Решение работает с Visual Studio 2013 или более поздней версии. Оригинальный вопрос был задан в 2012 году, и это 2016 год, поэтому добавляется решение Visual Studio 2013 или выше.
источник
У меня была такая же проблема, решение было так легко
Щелкните правой кнопкой мыши на solotion и установите Microsoft.ASP.NET.WebApi из раздела «Управление пакетом Nuget для Sulotion».
бум вот оно;)
источник