Ich habe beide benutzt gesehen und frage mich, ob sie das gleiche oder andere Dinge tun? Wenn es das Letztere ist, was ist der Unterschied?Soll ich RouteParameter oder UrlParameter für eine Asp.NET-Web-API-Route verwenden?
Ich versuchte es selbst zu beantworten, indem ich mir die Visual Studio MVC 4 (rc) Web API Vorlage anschaute, aber leider verwendet es beide, so dass meine Verwirrung bleibt. Hier ist, was die Vorlage enthält:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
}
Aha .. Ich bemerkte nicht einmal, dass sie verschiedene Methoden auf dem Objekt routes aufgerufen hatten. Aber es macht Sinn. Ich frage mich, warum sie Ansichten und mvc Zeug in der Web-API-Vorlage enthalten. Hoffentlich werden sie bald mit der SPA-Vorlage fertig. Vielen Dank! :) – Mithon
Es gibt auch ein anderes Verhalten zwischen zwei von diesen. Wenn Sie diesen Beitrag überprüfen: http://stackoverflow.com/questions/19043266/in-asp-net-webapi-does-routeparameter-optional-mean-optional-part-of-the-url UrlParameter.Optional wird nicht benötigt Sie können Standardparameter angeben, während RouteParameter.Optional dies tut. –