Le Routage d'URL avec l'API WEB et de la Zone dans MVC5
Je suis en train de travailler sur un MVC 5 application. J'ai créé une Zone nommée Organization
. J'ai également créé un (API) de dossier en dossier contrôleurs de Domaine. Donc ma structure sont devenus comme
/Areas/Organization/Controllers/API/OrganizationAPI
Où OrganizationAPI
est API Contrôleur pour Organization
Zone. Maintenant, mon problème est en ce qui concerne le Routage dans MVC. Je suis incapable de trouver ce que l'URL invoquera mon API.
J'ai essayé avec cette URL
http://localhost:80/Organization/API/OrganizationAPI/getData
où getData
est Ma méthode d'action. Mais il est dit que la ressource est introuvable. Peut-veuillez m'aider dans la compréhension de qui comment puis-je enregistrer mes propres itinéraires afin que je puisse la carte de mes actions avec les URLs, et aussi me suggérer quelques URL de référence pour le Routage d'URL dans MVC 4 ou au-dessus.
OriginalL'auteur Ankush Jain | 2013-12-25
Vous devez vous connecter pour publier un commentaire.
Si votre projet contient déjà un WebApiConfig.cs fichier, la grande! Vous avez juste besoin d'ajouter une route comme ci-dessous:
Vous devriez être en mesure de faire quelque chose comme ceci (Route de Contraintes): asp.net/web-api/overview/web-api-routing-and-actions/...
OriginalL'auteur Jason Foglia
Les routes par défaut créé pour les contrôleurs d'API ne pas prendre en considération le nom de la méthode (getData dans votre cas), pas comme d'ordinaire dans les contrôleurs. Cela dépend de la méthode http (get/post/put/delete) et les paramètres que vous envoyez, les méthodes d'action devrait commencer avec le même que le nom de la méthode http (par exemple, getData, sera appelée lorsque la méthode get est utilisée).
vous pouvez ajouter un itinéraire personnalisé pour appeler à des actions sur l'api contrôleur par nom.
Afin d'appeler votre obtenir les données de la méthode, l'url doit ressembler à: Zone/API/Contrôleur, ne pas ajouter le nom de la méthode.
OriginalL'auteur A Khudairy
Vous pouvez simplement créer un autre itinéraire pour émuler les domaines, mais cela ne fonctionne pas bien avec le "namespace" concept: Vous verrez que les contrôleurs dans une zone sera accessible à partir d'un autre des domaines. C'est parce que "ZONE" n'est pas vraiment pris en compte dans l'API Web comme MVC de routage.
Donc, si vous avez des contrôleurs de la même nom dans différents domaines une exception sera levée:
La solution pour moi a été la suite de cette élégante solution de contournement de Martin Devillers Blog:
http://blogs.infosupport.com/asp-net-mvc-4-rc-getting-webapi-and-areas-to-play-nicely/
SoFarSoGood!
OriginalL'auteur iMarrero