Кодирование/декодирование URL-адресов ASP.NET

У меня есть два файла htmlpage1.htm и webform1.aspx

htmlpage1.htm содержит тег привязки с href="webform1.aspx?name=abc+xyz".

Когда я пытаюсь получить доступ к строке запроса в page_load файла webform1.aspx, я получаю «abc xyz» (abc [пробел] xyz). Мне нужно точное значение в строке запроса "abc+xyz"

Примечание. значение href изменить нельзя.

Любая помощь будет оценена

Благодарю вас.


person Faizal Balsania    schedule 12.07.2011    source источник


Ответы (4)


Это будет Server.UrlDecode для вас:

Request.QueryString["name"] // "abc xyz"

Вариант 1) Можно перекодировать

Server.UrlEncode(Request.QueryString["name"]); // "abc+xyz"

или получить необработанные данные запроса

Request.Url.Query // "?name=abc+xyz"

Вариант 2) Затем проанализируйте значение

Request.Url.Query.Substring(Request.Url.Query.IndexOf("name=") + 5) // "abc+xyz"
person MikeM    schedule 12.07.2011

ASP.net декодирует строку запроса для вашего. вы можете получить необработанную строку запроса и проанализировать ее самостоятельно, если хотите.

person Mike    schedule 12.07.2011

Попробуйте webform1.aspx?name=abc%2Bxyz

person Bala R    schedule 12.07.2011
comment
@Faizal В этом случае, если вы не ожидаете пробела в параметре запроса name, просто замените пробел на +. - person Bala R; 12.07.2011

Используйте это:
Request.QueryString["name"].Replace(" ","+");
// Перейдите по ссылке ниже для получения дополнительной информации
http://runtingsproper.blogspot.in/2009/10/why-aspnet-accidentally-corrupts-your.html

person Sameer    schedule 12.06.2013