перенаправление ответа с + - PullRequest
2 голосов
/ 25 мая 2010

когда я пишу

Response.Redirect("Default2.aspx?Name=" + TextBox1.Text);

затем

string input = Request.QueryString["Name"];

если я напишу Yahoo + музыку в текстовом поле

вход будет Yahoo музыка, почему? и как я могу держать «+»?

Ответы [ 3 ]

7 голосов
/ 25 мая 2010

+ - кодировка пробела в строках запроса. Для кодирования + необходимо использовать %2b.

Попробуйте UrlEncode, который должен обработать это для вас.

3 голосов
/ 25 мая 2010

Плюс в URL означает пробел. Вы должны URL кодировать значение, которое вы указали в URL:

Response.Redirect("Default2.aspx?Name=" + Server.UrlEncode(TextBox1.Text));
0 голосов
/ 25 мая 2010

У меня есть другой способ - хотя и немного «хитрый» - достичь своей цели, передав «+» (или любой другой специальный символ) в строку запроса

когда вы передаете строку запроса, вы пишете так:

Response.Redirect ( "Default.aspx Name =?" + TextBox1.Text.Replace ( "+", "_"));

тогда он пройдет Default.aspx? Name = Yahoo_Music

и для запроса просто замените

string input = Request.QueryString ["Name"]. Replace ("_", "+");

ввод будет: Yahoo + Music.

хотя это немного сложнее, но иногда очень полезно передавать специальный символ в строке запроса.

Спасибо

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