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