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