Erstellen von url für die Web-Api mit Attribut-routing

Wie bekomme ich die url von der web-api aus meiner Sicht?

Beispiel (aus der msdn-blog):

[RoutePrefix("reviews")]
public class ReviewsController : ApiController
{
    //eg.: /reviews
    [Route]
    public IHttpActionResult Get() { ... }
    //eg.: /reviews/5
    [Route("{reviewId}")]
    public IHttpActionResult Show(int reviewId) { ... }
    //eg.: /reviews/5/edit
    [Route("{reviewId}/edit")]
    public IHttpActionResult Edit(int reviewId) { ... }
}

Nun will ich bauen "/Bewertungen/Bearbeiten" in meiner Ansicht, wie kann ich dies tun?

Ich habe versucht, erstellen eine kleine Erweiterung Methode, aber es verlangt von mir zu geben, jede Strecke eine tatsächliche "RouteName". Gibt es eine Methode, die ich verwenden kann (wie in MVC) wo kann ich geben Sie nur den controller und die Aktion?

@Url.Action("Edit", "Reviews)

Die Methode, die ich jetzt verwende (mit RouteName) auch mir nicht erlaubt, zu verwenden Ganzzahlen als Parameter (es sei denn ich gebe einen default-Wert). Wenn ich brauche, um alle Namen und alle meine Routen, wie kann ich eine route erstellen url übergeben aber meine Parameter in den "data"-Teil meiner Anfrage?

Aktuelle Methode:

public static string ResolveWebApiRoute(this UrlHelper urlHelper, string routeName, object routeValues = null)
{
    var newRouteValues = new RouteValueDictionary(routeValues);
    newRouteValues.Add("httproute", true);

    return urlHelper.RouteUrl(routeName, newRouteValues);
}

BEARBEITEN

Wenn ich verwendet Methoden wie Url.RouteUrl(new { controller = ..., action = ...}) wird, leitet Es direkt an die Aktion (z.B. new { controller = "Reviews", action = "Show"} --> /reviews/show, whilest ich will, die Umleitung zu /reviews/...

Sieht aus wie es einige Verwirrung...Sie zu erzeugen versuchen, einen link zu einem MVC action und NICHT Web-API. httproute verwendet wird, für die Generierung der links zu einer Web-API-controller und nicht-MVC-wie in Ihrem Fall.
Das war eine falsche copy/paste, es ist definitiv ein Web-API-controller, nicht auf ein MVC-controller, danke für den Hinweis

InformationsquelleAutor Team-JoKi | 2014-01-17

Schreibe einen Kommentar