Request.Querystring автоматически URL-адрес декодирует строку?
Я работаю со страницей, где у меня есть URL-адрес, как:
/ Каталог / Компания / производитель
Используя некоторые правила перезаписи, это переписывается
тестирование с помощью / directory / company / dunkin% 26donuts /
У некоторых производителей есть амперсанд в названии. Поэтому я подумал, что смогу заменить амперсанд на%26
, Тем не менее, когда я отлаживаю код и наведите курсор мыши наRequest.QueryString
это показывает мне{qq=company&manf=dunkin&donuts&cond=}
а такжеRequest.QueryString["manf"]
дает мне "Dunkin"
Если я использую%24
($) вместо амперсанда, нависшего надRequest.QueryString
дает мне{qs=company&manf=dunkin%24donuts&cond=}
а такжеRequest.QueryString["manf"]
дает мне пончики $ dunkin $
Я не понимаю, другое поведение здесь. Почему кажется, что значение для амперсанда, закодированное в URL-адресе, декодируется до того, как вы фактически запросите конкретный ключ, а другой кодированный в URL-адресе символ, такой как знак доллара, декодируется только после того, как вы действительно запросите этот конкретный ключ?
Это недавнее изменение? Я всегда думал, чтоRequest.QueryString[key]
вернул реальный текст без предварительного декодирования. Или это как-то связано с перезаписью URL?