2

在具有此 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 重写规则,但无法确定我们的方式或它是否是正确的方法。

4

1 回答 1

0

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

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

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

于 2013-11-09T22:37:23.700 回答