Comment ajouter des API Web existant ASP.NET MVC 4 projet d'Application Web?
Je souhaite ajouter un ASP.NET Web API à un ASP.NET MVC 4 projet d'Application Web développée en Visual Studio 2012. Quelles démarches dois-je effectuer pour ajouter un fonctionnement de l'API Web pour le projet? Je suis conscient que j'ai besoin d'un contrôleur découlant de ApiController, mais c'est tout ce que je sais.
Permettez-moi de savoir si j'ai besoin de fournir plus de détails.
Vous devez vous connecter pour publier un commentaire.
Les étapes que j'ai besoin sont:
System.Web.Http.WebHost
.App_Start\WebApiConfig.cs
(voir l'extrait de code ci-dessous).System.Web.Http
dansGlobal.asax.cs
.WebApiConfig.Register(GlobalConfiguration.Configuration)
dansMvcApplication.Application_Start()
(dans le fichierGlobal.asax.cs
), avant l'enregistrement de l'Application Web par défaut en tant qu'itinéraire qui, autrement, seraient la priorité.System.Web.Http.ApiController
.Je puisse apprendre assez de le tutoriel (Votre Premier ASP.NET Web API) pour définir mon API contrôleur.
App_Start\WebApiConfig.cs:
Mondiale.asax.cs:
Mise à jour 10.16.2015:
Mot, le package NuGet Microsoft.AspNet.WebApi doit être installé pour que le ci-dessus pour travailler.
System.Net.Http
ainsi, mais en dehors de cela, il a travaillé comme un charme!System.Net.Http
. Alors peut-être votre cas est un peu différente?MyController
, vous devriez pouvoir y accéder comme /api/Ma.HTTP 404
"ressource non trouvée erreur, même si vous pourriez avoir tout le reste en fait câblé correctement.WebApiConfig.Register(GlobalConfiguration.Configuration);
doit être aprèsAreaRegistration.RegisterAllAreas();
.Install-Package Microsoft.AspNet.WebApi.WebHost
. Merci pour ce partage @aknuds1.Mise à JOUR 11/22/2013 - c'est la dernière WebApi package:
Réponse originale à cette question (c'est une ancienne WebApi package)
Plus détails.
Install-Package Microsoft.AspNet.WebApi
maintenant. Voir nuget.org/packages/Microsoft.AspNet.WebApiPour ajouter WebAPI dans mon MVC 5 projet.
Ouvrir le gestionnaire de Package NuGet console et lancez
Ajouter des références à
System.Web.Routing
,System.Web.Net
etSystem.Net.Http
dll si ce n'est déjà fait)À droite, cliquez sur contrôleurs de dossier > ajouter un nouvel élément > web > Ajouter des Web API contrôleur
Web.la configuration sera modifié en conséquence par VS
Ajouter
Application_Start
méthode si ce n'est déjà fait)Ajouter la classe suivante (j'ai ajouté mondiale.asax.cs fichier)
Modifier l'api web de méthode en conséquence
De reconstruction et de test
Construire une page html simple
Dès que vous ajoutez un "WebApi Contrôleur" sous les contrôleurs de dossier, Visual Studio prend en charge automatiquement les dépendances;
Install-Package Microsoft.AspNet.WebApi
2. Ajouter un nouvel élément "Web API de la Classe Controller (v2.1)". Résultat: ajoute l'api contrôleur, mais ne change pasApplication_Start
. Avec Owin.Vous pouvez installer à partir de nuget comme l'image ci-dessous:
Ou, exécutez la commande ci-dessous de la ligne sur la Console du Gestionnaire de Package:
Avant de commencer la fusion MVC et Web API projets, je vous propose de lire sur inconvénients et les avantages de séparer ces différents projets. Une chose très importante (le mien) est d'authentification des systèmes, ce qui est totalement différent.
SI vous avez besoin d'utiliser les requêtes authentifiées sur les deux MVC et Web API, vous devez vous rappeler que le Web API RESTful (n'avez pas besoin de garder de la session, de simples requêtes HTTP, etc.), mais MVC n'est pas.
De regarder sur les différences d'implémentations suffit de créer 2 différents projets dans Visual Studio 2013 à partir de Modèles: l'un pour le MVC et un pour les API Web (n'oubliez pas d'activer l'Authentification Individuelle" lors de la création). Vous verrez une grande différence dans AuthencationControllers.
Donc, être conscient.
La solution ci-dessus fonctionne parfaitement. Je préfère choisir des API Web option tout en sélectionnant le modèle de projet comme le montre l'image ci-dessous
Remarque: La solution fonctionne avec Visual Studio 2013 ou plus. La question initiale a été posée en 2012 et 2016, donc l'ajout d'une solution de Visual Studio 2013 ou plus.
NOTE : ceci est juste une abréviation de cette réponse ci-dessus
Ouvrir le gestionnaire de Package NuGet console et lancez
Ajouter des références à
System.Web.Routing
,System.Web.Net
etSystem.Net.Http
dll si ce n'est déjà fait)Ajouter la classe suivante
Ajouter
Application_Start
méthode si ce n'est déjà fait (en global.asax.cs fichier)À droite, cliquez sur contrôleurs de dossier > ajouter un nouvel élément > web > Ajouter des Web API contrôleur
J'ai eu le même problème, la solution était si facile
Clic droit sur solotion
l'installation de Microsoft.ASP.NET.WebApi de "Gestion de Package Nuget pour Sulotion"
boom c'est tout 😉