Почему так сложно получить значения маршрута вне контекста контроллера?
Я не понимаю, что за этим стоит, почему так легко получить значения маршрута внутриRequest
контроллера, но почти невозможно сделать то же самое наHttpContext.Current.Request
?
Может быть, я просто не знаю лучшего пути, и он существует. Может ли кто-нибудь подтвердить, что это единственный способ получить данные маршрута вне контроллера?
пример[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
}