【问题标题】:"&" inside QueryString valueQueryString 值中的“&”
【发布时间】:2013-04-23 09:28:32
【问题描述】:

我正在使用 QueryStrings 让用户从下拉列表中自动选择值。此下拉列表中的某些值包含“&”。

例如“收购与发展”

当用户通过一个带有“&”的值时,字符串值在后半部分之前被截断。

string functionalDepartment = Request.QueryString["FunctionalDepartment"];
//returns "Acquisitions "

有没有办法在从 QueryString 获取值时包含值的后半部分?

【问题讨论】:

  • 您也可以使用 ID 代替描述。现在,当您的描述发生变化时,链接会中断。

标签: asp.net request.querystring


【解决方案1】:

& 字符需要进行 URL 编码,因为 & 用于将查询字符串划分为 name=value 对。 创建 URL 时,使用:

HttpUtility.UrlEncode(url);

【讨论】:

    【解决方案2】:

    在将它传递给查询字符串之前,只需替换:

    .Replace("&","%26");
    

    或使用 Server.URLEncode()

    【讨论】:

      【解决方案3】:

      您可以在设置下拉菜单的值时使用System.Web.HttpUtility.UrlEncode

      这将确保& 不会破坏这些值。

      【讨论】:

        【解决方案4】:

        使用HttpServerUtility.UrlEncode:

        URL 编码确保所有浏览器都能正确传输 URL 字符串中的文本。某些浏览器可能会截断或损坏与号 (&) 等字符。

        更多详情请看Query strings with special characters

        我也提到了

        【讨论】:

          【解决方案5】:

          Server.UrlEncode("url") 将解决您的问题。

          例子:

           MyURL = "http://www.ursite.com/urpage.aspx?ReqStr=" + Server.UrlEncode("ASP.NET Examples");
          

          【讨论】:

            猜你喜欢
            • 2011-12-27
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多