Спасибо, Винай! Это сэкономило мне часы поиска в Google!
ользую маршрутизацию в 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. Кому-нибудь повезло с этим?