【问题标题】:ASP Request.QueryString doesn't html decode "&" from URL query stringASP Request.QueryString 不会对 URL 查询字符串中的“&”进行 html 解码
【发布时间】:2013-11-09 20:14:51
【问题描述】:

在具有此 URL 的 ASP 中:

http://www.example.com?foo=1&bar=2

Request.QueryString["bar"] 返回 NULL

URL 是一个地图区域“href”链接,我这样分配:

PolygonHotSpot p = new PolygonHotSpot();
p.NavigateUrl = http://www.example.com?foo=1&bar=2

ASP 自动对 href 的 URL 进行 HTML 编码,但它不是在请求中再次对它进行 HTML 解码,因此找不到查询字符串“bar”。

现在我正在使用 IIS URL Rewrite 2 模块。也许这个模块导致了问题?我能做些什么来解决它?我曾尝试使用 URL 重写规则,但无法确定我们的方式或它是否是正确的方法。

【问题讨论】:

    标签: asp.net query-string decode ampersand


    【解决方案1】:

    这可能不是一个好主意,但您可以使用 Request.ServerVariables("QUERY_STRING")(或 Request.ServerVariables["QUERY_STRING"] - 您的标签说 ASP 经典但您的代码看起来像 C#?)来了解整个事情然后处理自己动手。

    我认为肯定有更深层次的错误。可以对链接进行编码以发送到浏览器 - 浏览器会在导航到链接之前对其进行解码。您可以在测试脚本中使用简单的<a href="/test?a=1&b=2"> 来演示这一点——浏览器正确地以/test?a=1&b=2 结束。使用多边形图像映射对其进行测试显示了相同的行为。

    如果您可以向我展示您的图像映射的实际 HTML 输出中的内容,我可能会提供更多帮助。

    【讨论】:

      猜你喜欢
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-20
      • 2012-07-02
      • 1970-01-01
      • 2012-02-29
      • 2016-12-16
      相关资源
      最近更新 更多