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?