Я использую маршрутизацию в веб-формах asp.net 4.0 с некоторым успехом.На своих страницах я использую Page.GetRouteURL для генерации таких маршрутов.
<a href = '<%=GetRouteUrl("MyRoute", new {MyFirstRouteValue = "ABC", MySecondRouteValue=123}) #>' >Link Text</a>
Это прекрасно работает, но я обнаружил, что бывают моменты, когда мне нужна эта функциональность в классе в app_code.Я мог бы просто вручную построить маршрут с помощью String.Format, но это немного неаккуратно, поскольку он дублировал бы код в Global.asax, который определяет маршруты.
Конечно, в классе App_Code нет объекта Page, поэтому я не могу просто вызвать GetRouteUrl.Просматривая в документах на MSDN , я вижу кое-что, что выглядит полезным.
Этот метод предназначен для удобства кодирования.Это эквивалентно вызову метода RouteCollection.GetVirtualPath (RequestContext, String, RouteValueDictionary).
Поэтому я проследовал за документами по этой странице , в которой говорится, что System.Web.Routing.GetVirtualPath () требует объект System.Web.Routing.RequestContext.Я знаю об объекте HttpContext, но не могу понять, что такое RequestContext.Кому-нибудь повезло с этим?