Derzeit gibt es keine Möglichkeit, den Routennamen einer Route in der Web-API abzurufen. Sie können den HttpRouteCollection
Quellcode hier nachsehen mehr Details. Wenn der Routenname für Ihr Szenario unbedingt erforderlich ist, können Sie den Routennamen in data tokens
einer Route speichern. (Beachten Sie, dass das Attribut-Routing derzeit keine Möglichkeit bietet, auf die Daten-Token zuzugreifen)
Update - 6/23/2014
Mit den neuesten Verbesserungen (5.2 RC) im Bereich des Attribut-Routings können Sie etwas tun, um Routennamen in Daten-Token einzufügen.
Greifen Sie darauf wie folgt zu:
reequest.GetRouteData().Route.DataTokens["Route_Name"]
Es ist vielleicht ein bisschen zu spät, um dies zu beantworten, aber ich befand mich in der gleichen Situation (das heißt, ich muss eine URL generieren, ohne den entsprechenden IHttpRoute-Namen zu haben). Sie können jedoch eine URL nur mit der Route und der HttpRequestMessage generieren.
%Vor%Der wichtige Teil besteht darin, HttpRoute.HttpRouteKey zu den Parametern hinzuzufügen. Wenn dieser Wert nicht verwendet wird, gibt GetVirtualPath null zurück. Siehe Code in HttpRoute.cs
%Vor%Tags und Links asp.net-web-api asp.net