QueryString преобразован в URL-Encode с использованием NameValueCollection

Я передаю зашифрованную строку 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


person Ravi Ram    schedule 20.01.2012    source источник


Ответы (3)


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

 qs =HttpUtility.UrlEncode(qscollstring[0]);
person kv-prajapati    schedule 20.01.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; 
person Nick Bork    schedule 20.01.2012

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

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

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

person Moumit    schedule 30.03.2017