Я использую ASP.NET UrlRoutingModule напрямую ( не через MVC ) для сопоставления определенных маршрутов с их обработчиками:
RouteTable.Routes.Add(new Route("products/{name}", handler));
Затем, во время запроса, я получаюзначения для каждого маршрута:
RouteData routeData = HttpContext.Current.Request.RequestContext.RouteData;
routeData.Values.TryGetValue("name", out value);
Пока все отлично, я получаю правильные значения для каждого маршрута.Моя проблема заключается в кодировании: я хочу получить raw значение данных маршрута.Пример: для указанного выше маршрута, если запрошенный URL-адрес http://example.com/products/word%2Dword, полученное "имя" будет " word-word ".Однако мне нужно точное значение " word% 2Dword ".
Я знаю, что с ASP.NET я могу получить необработанный необработанный URL-адрес с помощью Request.ServerVariables ["HTTP_URL"], нок сожалению, я не могу использовать это здесь.
Любая помощь будет оценена.
Спасибо
РЕДАКТИРОВАТЬ
Моя конкретная проблема заключается в том, что я хотел бы получить большеПродукты в одном запросе, используя их названия.У меня есть, например, следующие названия продуктов: « студент, ученик » и « больной, больной » ( их имя содержит запятую ).Я также использую запятую для разделения имен в запросе.
Я обрабатываю кодировку на стороне клиента, поэтому запрос GET выглядит следующим образом: http://example.com/products/student%2Cpupil,sick%2Cill ( Я кодирую каждое имя отдельно, но не кодирую разделитель ).
На стороне сервера параметр «имя» будет автоматически декодирован ASP.NET, и в результате получится: « студент, ученик, больной, больной », так что теперь я неЯ не знаю, какой разделитель.Request.ServerVariables ["HTTP_URL"] возвращает URL так, как я хочу (" products / student% 2Cpupil, sick% 2Cill "), поэтому я предполагаю, что должен быть способ получить необработанное значение какданные маршрута.