"Le type ou le nom de l'espace de nommage" Route "n'a pas pu être trouvé" using "l'acheminement des attributs"
Juste essayer d'épissage du code à partir d'un projet de travail à l'autre. Le projet utilise l'attribut "routage" où vous incorporez [Route(…)]
directives dans le site Web de l'API des modules de contrôleur pour indiquer ce message HTTP devraient voie de service de routine.
Fonctionne très bien dans le "de" du projet, mais dans le projet, j'obtiens l'erreur "le type ou Le nom d'espace de noms 'Route' n'a pas pu être trouvée (vous manque une directive using ou une référence d'assembly?)"
J'ai essayé de copier pratiquement la totalité de la using
consolidés à partir de la "de projet" pour le "pour" le projet, mais qui n'a aucun effet apparent. Aucun des MS documentation suggère qu'un package NuGet est nécessaire (ou même un using
déclaration). Les deux projets sont soi-disant ASP.NET MVC 4.
(Et, oui, j'ai mis à jour WebApiConfig.cs avec le config.MapHttpAttributeRoutes();
déclaration.)
Des idées??
source d'informationauteur Hot Licks | 2014-06-25
Vous devez vous connecter pour publier un commentaire.
Attribut de Routage est natif dans ASP.NET MVC 5, ou plus tard, et ASP.NET Web API 2.
Cependant, il y a un projet qui permet d'utiliser l'attribut de routage dans la version précédente de ASP.NET MVC,Web API. Vous devriez lire attentivement cette page.
Comme vous pouvez le voir dans la page du lien, ce projet est disponible en package NuGet, de sorte qu'il peut être installé comme ceci:
Install-Package AttributeRouting
(MVC)Install-Package AttributeRouting.WebApi
(pour le Web API)Install-Package AttributeRouting.WebApi.Hosted
(pour l'auto-hébergée sur le Web API)S'il vous plaît, soyez conscient que les espaces de noms d'attribut de routage sont différents pour chaque version et pour MVC et Web API. Donc, vous devez parcourir l' .dll inclus par le paquet installé à trouver le bon espace de noms, et de changer votre
using
en conséquence. Par exemple:Ce commentaire de Vedran Mandic résolu le problème pour moi. Je suis re-poster ici parce que je pense que cela devrait être la réponse (ou au moins une réponse).
Dans mon cas, dans l'api web de projet, il y avait deux à l'aide de références:
Dès que j'ai enlevé
System.Web.Mvc
l'erreur a disparu.Lorsque les projets sont partagés entre plusieurs solutions, la référence des bibliothèques téléchargé avec Nuget doivent être configurés dans .csproj manuellement à la solution liées chemin.
Par exemple, log4net doit être configuré comme: