Warum ist es so schwierig, Routenwerte außerhalb des Controller-Kontexts abzurufen?
Ich verstehe nicht, was dahinter steckt, warum es so einfach ist, Routenwerte zu ermittelnRequest
von Controller, aber fast unmöglich, das gleiche auf zu tunHttpContext.Current.Request
?
Vielleicht kenne ich einfach keinen besseren Weg und es existiert. Kann jemand bestätigen, dass dies die einzige Möglichkeit ist, Routendaten außerhalb des Controllers abzurufen?
Beispiel[Route("{id}"), HttpGet]
public IHttpActionResult Test()
{
// Simple and easy
var route1 = Request.GetRouteData().Values["id"];
// Wat. This is also ~6 times slower
var routeValues = (IHttpRouteData[]) HttpContext.Current.Request.RequestContext.RouteData.Values["MS_SubRoutes"];
var route2 = routeValues.SelectMany(x => x.Values).Where(x => x.Key == "id").Select(x => x.Value).FirstOrDefault();
return Ok(route1 == route2); // true
}