响应重定向'+'

时间:2010-05-24 23:21:14

标签: c# asp.net response

当我写

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

然后

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

如果我在文本框中写yahoo + music

输入将是雅虎音乐为什么?我怎样才能保留'+'?

3 个答案:

答案 0 :(得分:7)

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

尝试使用UrlEncode来处理此问题。

答案 1 :(得分:3)

URL中的加号表示空格。您应该对您在URL中输入的值进行URL编码:

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

答案 2 :(得分:0)

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

当您传递您编写的查询字符串时,如下所示:

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

然后它将传递Default.aspx?Name = Yahoo_Music

并要求它,只需再次替换

string input = Request.QueryString [“Name”]。替换(“_”,“+”);

输入将是:Yahoo + Music。

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

由于