Как вы говорите, ASP.NET MVC предлагает вам набор вспомогательных методов для "обратного просмотра" RouteTable и генерации URL для вас. Я пока еще не играл с этим, но, насколько я вижу, вам нужно вызвать метод GetVirtualPath для RouteCollection (скорее всего RouteTable.Routes). Так что-то вроде:
Dim routedurl = RouteTable.Routes.GetVirtualPath(context, rvd).VirtualPath
Вам необходимо передать RequestContext и RouteValueDictionary. RouteValueDictionary содержит параметры маршрута (поэтому в вашем случае что-то вроде county = "UK", lang = "EN-GB" и т. Д. Сложная часть - это RequestContext, поскольку он не является частью обычного HttpContext. HttpContext в вашем IRouteHandler:
requestContext.HttpContext.Items("RequestContext") = requestContext
и затем восстановите его снова в вашем IHttpHandler (страница aspx) при необходимости:
Dim rvd =
New RouteValueDictionary(New With {.country = "UK", .lang = "EN-GB"})
Dim routedurl =
RouteTable.Routes.GetVirtualPath(context.Items("RequestContext"), rvd).VirtualPath
Извиняюсь за ответ на вопрос C # в VB, просто сайт маршрутизации ASP.NET, который я должен был передать, был в VB.NET.