У меня есть значение параметра строки запроса, которое содержит амперсанд. Например, допустимое значение параметра может быть:
a & b
Когда я генерирую URL, который содержит параметр, я использую System.Web.HTTPUtility.UrlEncode (), чтобы сделать каждый элемент URL-дружественным. Это (правильно) дает мне URL-адрес, как:
http://example.com/foo?bar=a+%26b
Проблема в том, что объект Request в ASP.NET интерпретирует (закодированный) амперсанд как разделитель параметров строки запроса и, таким образом, разделяет мое значение на 2 части (первая имеет «bar» в качестве имени параметра; вторая нулевое имя).
Похоже, что ASP.NET сначала декодирует URL, а затем использует его при разборе строки запроса.
Какой лучший способ обойти это?
ОБНОВЛЕНИЕ : проблема связана с URLRewriter (сторонним плагином), а не с самим ASP.NET. Я изменил название, чтобы отразить это, но оставлю остальную часть текста вопроса, как есть, пока не узнаю больше о проблеме.