Les étapes que je devais effectuer étaient:
- Ajoutez une référence à
System.Web.Http.WebHost
.
- Ajouter
App_Start\WebApiConfig.cs
(voir l'extrait de code ci-dessous).
- Importez l'espace
System.Web.Http
de noms dans Global.asax.cs
.
- Appel
WebApiConfig.Register(GlobalConfiguration.Configuration)
à MvcApplication.Application_Start()
(dans le fichier Global.asax.cs
), avant l' enregistrement de la voie d'application Web par défaut comme qui autrement prioritaire.
- Ajoutez un contrôleur dérivant de
System.Web.Http.ApiController
.
Je pourrais ensuite en apprendre suffisamment du tutoriel (Votre première API Web ASP.NET) pour définir mon contrôleur d'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);
}
Mise à jour 10.16.2015:
Word l'a, le package NuGet Microsoft.AspNet.WebApi doit être installé pour que ce qui précède fonctionne.
System.Net.Http
, mais à part cela, cela a fonctionné comme un charme!MISE À JOUR 11/22/2013 - c'est le dernier package WebApi:
Réponse originale (il s'agit d'un ancien package WebApi)
Plus de détails .
la source
Install-Package Microsoft.AspNet.WebApi
maintenant. Voir nuget.org/packages/Microsoft.AspNet.WebApiPour ajouter WebAPI dans mon projet MVC 5.
Ouvrez la console du gestionnaire de packages NuGet et exécutez
Ajouter des références à
System.Web.Routing
,System.Web.Net
etSystem.Net.Http
dll sinon déjà làCliquez avec le bouton droit sur le dossier des contrôleurs> ajouter un nouvel élément> Web> Ajouter un contrôleur d'API Web
Web.config sera modifié en conséquence par VS
Ajouter une
Application_Start
méthode si ce n'est déjà faitAjoutez la classe suivante (j'ai ajouté dans le fichier global.asax.cs)
Modifiez la méthode de l'API Web en conséquence
Reconstruire et tester
Créez une page HTML simple
la source
Dès que vous ajoutez un "WebApi Controller" sous le dossier controllers, Visual Studio s'occupe automatiquement des dépendances;
la source
Install-Package Microsoft.AspNet.WebApi
2. Ajoutez un nouvel élément "Classe de contrôleur API Web (v2.1)". Résultat: ajoute le contrôleur api mais ne change pasApplication_Start
. Avec Owin.Vous pouvez installer à partir de nuget comme l'image ci-dessous:
Ou, exécutez la ligne de commande ci-dessous sur la console du gestionnaire de packages:
la source
Avant de commencer à fusionner des projets MVC et API Web, je suggère de lire les inconvénients et les avantages pour les séparer en tant que projets différents. Une chose très importante (la mienne) est les systèmes d'authentification, qui sont totalement différents.
SI vous devez utiliser des requêtes authentifiées sur MVC et API Web, vous devez vous rappeler que l'API Web est RESTful (pas besoin de garder la session, les requêtes HTTP simples, etc.), mais MVC ne l'est pas.
Pour regarder les différences d'implémentations, créez simplement 2 projets différents dans Visual Studio 2013 à partir de modèles: un pour MVC et un pour API Web (n'oubliez pas d'activer "Authentification individuelle" lors de la création). Vous verrez beaucoup de différence dans AuthencationControllers.
Alors, soyez conscient.
la source
REMARQUE: ce n'est qu'une abréviation de cette réponse ci-dessus
Ouvrez la console du gestionnaire de packages NuGet et exécutez
Ajouter des références à
System.Web.Routing
,System.Web.Net
etSystem.Net.Http
dll sinon déjà làAjoutez la classe suivante
Ajouter une
Application_Start
méthode si elle n'y est pas déjà (dans le fichier global.asax.cs)Cliquez avec le bouton droit sur le dossier des contrôleurs> ajouter un nouvel élément> Web> Ajouter un contrôleur d'API Web
la source
La solution ci-dessus fonctionne parfaitement. Je préfère choisir l'option API Web tout en sélectionnant le modèle de projet comme indiqué dans l'image ci-dessous
Remarque: La solution fonctionne avec Visual Studio 2013 ou supérieur. La question d'origine a été posée en 2012 et c'est 2016, donc ajout d'une solution Visual Studio 2013 ou supérieure.
la source
J'ai eu le même problème, la solution était si simple
Faites un clic droit sur l'installation de solotion Microsoft.ASP.NET.WebApi à partir de "Gérer le package Nuget pour Sulotion"
boom c'est tout;)
la source