У меня также были проблемы с передачей закодированного URL-адреса на маршрут в качестве параметра маршрута.
Вы не можете использовать символы URL в URL, но можете это сделать в строке запроса.
Поэтому мне нужно, чтобы в моем маршруте также был элемент строки запроса.
Скажите, у меня есть маршрут:
MapPageRoute("myroute", "myroute/{x}", "~/routehander.aspx")
Но я хочу это в виде:
http://mywebsite.com/myroute/{x}?url=myurl
Мы можем сделать это:
Dim x as integer = 12
Dim rvd As New Routing.RouteValueDictionary
rvd.Add("x", x)
rvd.Add("url", Server.UrlEncode("/default.aspx"))
HttpContext.Current.ApplicationInstance.Response.RedirectToRoutePermanent("myroute", rvd)
Это перенаправит нас на следующий URL:
http://mywebsite.com/myroute/12?url=%252fdefault.aspx