2010-05-24 62 views
2

当我写响应与 '+' 重定向

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

然后

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

如果我写雅虎+音乐文本

的投入将是雅虎的音乐,为什么?我该如何保持'+'?

回答

3

URL中的加号表示空格。你应该URL编码,你把网址中的值:

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

+是查询字符串中的空间编码。要编码+,您需要使用%2b

尝试UrlEncode这应该为您处理。

0

我有另一种方式 - 虽然有点“棘手” - 通过传递来达到自己的目标“+”(或任何其他特殊字符)在查询字符串

当你通过查询字符串,你这样写:

的Response.Redirect( “?Default.aspx的名称=” + TextBox1.Text.Replace( “+”, “_”)) ;

那么它会通过的Default.aspx?名称= Yahoo_Music

,并要求它,只是再次更换

字符串输入=的Request.QueryString [ “名称”]。替换( “_”,” +“);

输入将为:Yahoo + Music。

虽然这种方式有点棘手,但有时这种方式非常有助于在查询字符串中传递特殊字符。

谢谢