QueryString преобразуется в URL-кодирование с использованием NameValueCollection - PullRequest
3 голосов
/ 20 января 2012

Я передаю зашифрованную строку URL:

Default.aspx? S3tLlnIKKzE% 3d

Я хочу передать эту строку URL обратно на страницу ASPX впеременная.

protected string qs = string.Empty;

NameValueCollection qscollstring = HttpContext.Current.Request.QueryString;
qs = qscollstring[0];

Который возвращает: S3tLlnIKKzE =

Значение в qscollstring [0] является правильным: S3tLlnIKKzE% 3d

Я понимаю, что проблема заключается в кодировке URL,но я не могу найти способ сохранить строку как есть.

Кажется, что присвоение значения из qscollstring [0]: S3tLlnIKKzE% 3d
, чтобы строка изменила значение: S3tLlnIKKzE =

Мне нужно остаться: S3tLlnIKKzE% 3d

Ответы [ 3 ]

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

Используйте метод HttpUtility.UrlEncode для кодирования строки.

 qs =HttpUtility.UrlEncode(qscollstring[0]);
0 голосов
/ 30 марта 2017

Как и я, если вы ищете reverse .. используйте

qs =HttpUtility.UrlDecode("S3tLlnIKKzE%3d");

, чтобы вернуться S3tLlnIKKzE =

0 голосов
/ 20 января 2012

Вы также можете извлечь значение из Uri текущего URL, не кодируя его.

Пример:

 Uri u = new Uri("http://localhost.com/default.aspx?S3tLlnIKKzE%3d");
 string q = u.Query;

И часть вашей страницы:

 string q = !String.IsNullOrEmpty(Request.Url.Query) && Request.Url.Query.Length > 1 ? Request.Url.Query.Substring(1) : Request.Url.Query; 
...