Ermitteln des übereinstimmenden Routennamens in der Web-API

8

In meinem Web-API-Handler muss ich den Namen der Route abrufen, die der Anfrage entspricht.

%Vor%     
Bond 08.11.2013, 08:41
quelle

2 Antworten

8

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.

%Vor%

Greifen Sie darauf wie folgt zu:
reequest.GetRouteData().Route.DataTokens["Route_Name"]

    
Kiran Challa 08.11.2013, 19:01
quelle
1

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%     
K. Korselis 26.02.2014 14:28
quelle

Tags und Links