2016-05-09 3 views
3

Я создаю приложение на основе ASP.NET Web API и следую учебному курсу: http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/action-results.
enter image description hereApiController и IHttpActionResult

Я пытаюсь присущего ApiController класса, как дескрипта в учебнике, а также реализовать IHttpActionResult интерфейс, но компилятор жалуется, что сборки из них не удалось найти.

Мой вопрос, как добавить сборки для ApiController и IHttpActionResult?

Update 1

Я добавить Microsoft.AspNet.WebApi.Core через NuGet и показывает мне сообщение об ошибке enter image description here

Update 2 Сообщения об ошибках
enter image description here
enter image description here

+0

Что говорят об ошибках?Существуют ли ошибки зависимостей? Возможно, вы захотите использовать определенную версию WebApi.Core. Я использую версию 5.2.3, так как она играет вместе с множеством других зависимостей. – smoksnes

+0

Попробуйте добавить 'public void ConfigureServices (службы IServiceCollection) services.AddMvc();' в вашем файле автозагрузки – Eldho

+0

Это может быть полезно http://docs.asp.net/en/latest/tutorials/first-web-api. html – Eldho

ответ

2

Вы используете учебник для ASP.NET Web API 2, но вы выбрали шаблон проекта для ASP.NET Core. Это два разных зверя. Чтобы следовать руководству, вы должны выбрать шаблон «Веб-API» из области «ASP.NET 4.6.1» или use a tutorial for ASP.NET Core.

ASP.NET Core (previous called ASP.NET 5) предназначен для многоплатформенной разработки и работает с MVC6. В обзоре official documentation есть хороший концептуальный обзор. Вот небольшой отрывок из него отношения к этому вопросу:

С ASP.NET 5 мы делаем ряд архитектурных изменений, которые делают веб-фреймворк ядра гораздо более компактный и модульным. ASP.NET 5 - это , больше не основанный на System.Web.dll, а вместо этого основан на наборе гранулированных и хорошо продуманных пакетов NuGet, позволяющих вам оптимизировать ваше приложение, чтобы иметь именно то, что вам нужно.

В Core все контроллеры (включая контроллеры API) наследуются от базового класса Controller. Сборки, которые вы пытаетесь добавить, не поддерживаются в DNXCORE50, поскольку они не являются межплатформенными.

+0

В чем разница между 4.6.1 и 5? –

+0

@zero_coding Я обновил свой ответ с немного дополнительной информацией. Ядро ASP.NET не является продолжением 4.6.1, это совершенно новая структура. –

+0

Так что я должен использовать, ASP.NET 5 или 4.6.1? Что ориентировано на будущее? –

0

Добавить это к вашему usings:

using System.Web.Http; 

Кроме того, добавьте этот NuGet-пакет:

https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Core/

Выполнить это в менеджере пакетов:

Install-Package Microsoft.AspNet.WebApi.Core 

Или, возможно, если вы хотите конкретное версия:

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3 

Он часто добавляет это к вашему web.config:

<dependentAssembly> 
    <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> 
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> 
    </dependentAssembly> 
Смежные вопросы