Die Schritte, die ich ausführen musste, waren:
- Verweis auf hinzufügen
System.Web.Http.WebHost
.
- Hinzufügen
App_Start\WebApiConfig.cs
(siehe Codefragment unten).
- Namespace
System.Web.Http
in importieren Global.asax.cs
.
- Rufen Sie
WebApiConfig.Register(GlobalConfiguration.Configuration)
in MvcApplication.Application_Start()
(in Datei Global.asax.cs
), bevor die Standard Web Application Route wie die Registrierung sonst Vorrang haben würde.
- Fügen Sie einen Controller hinzu, der von abgeleitet ist
System.Web.Http.ApiController
.
Ich könnte dann aus dem Lernprogramm (Ihre erste ASP.NET-Web-API) genug lernen , um meinen API-Controller zu definieren.
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);
}
Update 10.16.2015:
Word hat es, das NuGet-Paket Microsoft.AspNet.WebApi muss installiert sein, damit das oben genannte funktioniert.
System.Net.Http
, aber ansonsten funktionierte es wie ein Zauber!UPDATE 22.11.2013 - Dies ist das neueste WebApi-Paket:
Ursprüngliche Antwort (dies ist ein älteres WebApi-Paket)
Weitere Details .
quelle
Install-Package Microsoft.AspNet.WebApi
jetzt. Siehe nuget.org/packages/Microsoft.AspNet.WebApiSo fügen Sie WebAPI in mein MVC 5-Projekt ein
Öffnen Sie die NuGet Package Manager-Konsole und führen Sie sie aus
Fügen Sie Verweise auf
System.Web.Routing
,System.Web.Net
undSystem.Net.Http
DLLs , wenn es nicht schonKlicken Sie mit der rechten Maustaste auf den Ordner "Controller"> Neues Element hinzufügen> Web> Web-API-Controller hinzufügen
Web.config wird von VS entsprechend geändert
Application_Start
Methode hinzufügen , falls noch nicht vorhandenFügen Sie die folgende Klasse hinzu (ich habe in der Datei global.asax.cs hinzugefügt)
Ändern Sie die Web-API-Methode entsprechend
Neu erstellen und testen
Erstellen Sie eine einfache HTML-Seite
quelle
Sobald Sie einen "WebApi Controller" im Ordner "Controller" hinzufügen, kümmert sich Visual Studio automatisch um Abhängigkeiten.
quelle
Install-Package Microsoft.AspNet.WebApi
2. Fügen Sie das neue Element "Web API Controller Class (v2.1)" hinzu. Ergebnis: Fügt den API-Controller hinzu, ändert sich aber nichtApplication_Start
. Mit Owin.Sie können von Nuget aus wie folgt installieren:
Oder führen Sie die folgende Befehlszeile in der Package Manager-Konsole aus:
quelle
Bevor Sie mit dem Zusammenführen von MVC- und Web-API-Projekten beginnen, sollten Sie sich über Vor- und Nachteile informieren , um diese als unterschiedliche Projekte zu trennen. Eine sehr wichtige Sache (meine eigene) sind Authentifizierungssysteme, die völlig anders sind.
Wenn Sie authentifizierte Anforderungen sowohl für MVC als auch für die Web-API verwenden müssen, müssen Sie sich daran erinnern, dass die Web-API REST-fähig ist (Sitzung, einfache HTTP-Anforderungen usw. müssen nicht beibehalten werden), MVC jedoch nicht.
Um die Unterschiede bei den Implementierungen zu untersuchen, erstellen Sie einfach zwei verschiedene Projekte in Visual Studio 2013 aus Vorlagen: eines für MVC und eines für die Web-API (vergessen Sie nicht, während der Erstellung die Option "Individuelle Authentifizierung" zu aktivieren). Sie werden einen großen Unterschied bei AuthencationControllern feststellen.
Also sei dir bewusst.
quelle
HINWEIS: Dies ist nur eine Abkürzung dieser Antwort oben
Öffnen Sie die NuGet Package Manager-Konsole und führen Sie sie aus
Fügen Sie Verweise auf
System.Web.Routing
,System.Web.Net
undSystem.Net.Http
DLLs , wenn es nicht schonFügen Sie die folgende Klasse hinzu
In
Application_Start
Methode , wenn nicht bereits (in global.asax.cs - Datei)Klicken Sie mit der rechten Maustaste auf den Ordner "Controller"> Neues Element hinzufügen> Web> Web-API-Controller hinzufügen
quelle
Die obige Lösung funktioniert perfekt. Ich bevorzuge die Web-API-Option, während ich die Projektvorlage auswähle (siehe Abbildung unten)
Hinweis: Die Lösung funktioniert mit Visual Studio 2013 oder höher. Die ursprüngliche Frage wurde 2012 gestellt und ist 2016, daher wird eine Lösung für Visual Studio 2013 oder höher hinzugefügt.
quelle
Ich hatte das gleiche Problem, die Lösung war so einfach
Klicken Sie mit der rechten Maustaste auf solotion. Installieren Sie Microsoft.ASP.NET.WebApi unter "Nuget-Paket für Sulotion verwalten".
Boom das war's;)
quelle