【问题标题】:How to pass '#' in query string如何在查询字符串中传递“#”
【发布时间】:2012-07-03 02:14:38
【问题描述】:

我想将“#”传递给查询字符串,例如?page.aspx?someParam=1234#5

【问题讨论】:

    标签: asp.net .net html query-string


    【解决方案1】:

    请在您的查询字符串上使用Server.UrlEncode,它将为您解析“#”

    【讨论】:

    • 其实,我想你想要的是 URLEncode,而不是 HtmlEncode。有区别。
    • 我想你的意思可能是 UrlEncode...msdn.microsoft.com/en-us/library/zttxte6w.aspx
    • 这是一个非常棒的答案,向 hatsoft 致敬!
    • 我发现你不必使用 Server.UrlDecode 只需使用 Request.QueryString["someParam"]
    【解决方案2】:

    尝试使用%23。这是# 的 url 编码值。

    【讨论】:

      【解决方案3】:

      对锐字符进行 URL 编码:%23

      【讨论】:

        【解决方案4】:

        尝试在 url 中使用 escape(url parameter value) 方法,而不是只使用参数值

        【讨论】:

          【解决方案5】:

          传递#& 和其他特殊字符 而不会导致asp.net 查询字符串出现问题的最佳方法是使用Server.UrlEncode()
          请参阅以下示例。

            private void btnSubmit_Click(object sender, System.EventArgs e)
            {
               Response.Redirect("page.Aspx?"+"someParam="+Server.UrlEncode("1234#5")); 
            } 
          


          或使用%23 替换#,但我认为更合适的方式是使用Server.UrlEncode(),这样您就可以毫无问题地使用其他特殊字符。

          【讨论】:

            猜你喜欢
            • 2020-11-29
            • 2013-02-21
            • 1970-01-01
            • 2016-02-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-13
            相关资源
            最近更新 更多