71 votes

Différence entre "MapHttpRoute" et "MapRoute"?

Pourquoi utiliser "MapRoute" pour le routage "Par défaut", tout en utilisant "MapHttpRoute" pour le routage "DefaultApi"?

         routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}"
        );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
 

65voto

Filip W Points 13343

Si vous utilisez l'API Web sur le dessus de ASP.NET ils finiront tous deux fonctionnent sur le même sous-jacent ASP.NET table de routage - cependant, comme souligné à juste titre, à partir du point de vue utilisateur vous appel à deux méthodes différentes pour enregistrer l'itinéraire.

Le routage a été conçue de cette façon, de sorte que lors de l'hébergement à l'extérieur de ASP.NET, Web API de ne pas avoir à compter sur le Système.Web.

Gardez à l'esprit que l'API Web n'est pas assis sur le dessus de la MVC, Web les Formes, ou, pour cette question ASP.NET à tous. Il peut être hébergé au sein de contexte web (ASP.NET), mais peut également être auto-hébergé (Console, WPF, etc) ou même accueilli en mémoire (sans l'utilisation des ports, utile pour savoir léger en fin de test).

30voto

Martin Devillers Points 3539

MapRoute est destiné aux contrôleurs ASP.NET MVC "normaux" tandis que MapHttpRoute est destiné aux contrôleurs API Web.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X