【问题标题】:response redirect with '+'使用“+”重定向响应
【发布时间】:2010-05-24 23:21:13
【问题描述】:

当我写作时

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

然后

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

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

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

【问题讨论】:

    标签: c# asp.net response


    【解决方案1】:

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

    试试UrlEncode,它会为你处理这个问题。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        当你传递这样的查询字符串时:

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

        那么它将通过 Default.aspx?Name=Yahoo_Music

        要请求它,只需再次替换

        字符串输入 = Request.QueryString["Name"].Replace("_","+");

        输入将是:Yahoo+Music。

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

        谢谢

        【讨论】:

          猜你喜欢
          • 2013-08-26
          • 2019-01-15
          • 1970-01-01
          • 2011-08-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多