Параметры запроса не распознаются как разделитель - PullRequest
2 голосов
/ 13 января 2012

У меня есть HttpHandler, который считывает параметры из URL-адреса запроса, просто используя context.Request ["param1"].Дело в том, что мой сайт совместим с xHTML, поэтому все ссылки закодированы.Поэтому у меня есть ссылка в формате: http://mydomain.com/?param1=a&param2=b.

Проблема в том, что запрос ["param2"] не распознан.Вместо этого он думает, что вторым параметром является "amp; param2".Он не понимает, что & представляет & в URL.Как мне сказать «Запрос», что ссылки должны быть совместимы с xHTML?

Ответы [ 3 ]

4 голосов
/ 13 января 2012

Вам нужно UrlEncode ваши ссылки, а не HTMLEncode .

Первый дает & = %26, а последний (тот, который вы используете) дает& = & и обработчик разбивает параметры по первым & in &

2 голосов
/ 13 января 2012

Вы хотите использовать Request.QueryString, а не Request.

Например:

context.Request.QueryString["param1"]
context.Request.QueryString["param2"]
0 голосов
/ 13 января 2012

Амперсанд в вашем URL, который разделяет параметры GET (т. Е. Строки запроса / запроса), все еще должен быть '&'. Если вы отображаете амперсанд в реальном XHTML, тогда вы будете использовать кодировку XHTML. XHTML, кодирующий амперсанд для использования в качестве разделителя параметров в URL, не будет распознаваться как таковой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...