我有一个包含&符号的查询字符串参数值。例如,参数的有效值可能是:
a & b
当我生成包含参数的 URL 时,我正在使用 System.Web.HTTPUtility.UrlEncode() 使每个元素对 URL 友好。它(正确地)给了我一个像这样的 URL:
http://example.com/foo?bar=a+%26b
问题是 ASP.NET 的 Request 对象将(编码的)&符号解释为查询字符串参数分隔符,因此将我的值分成两部分(第一个有“bar”作为参数名称;第二个有一个空名称)。
似乎 ASP.NET 是先对 URL 进行 URL 解码,然后在解析查询字符串时使用它。
解决此问题的最佳方法是什么?
更新:问题取决于URLRewriter(第三方插件)而不是 ASP.NET 本身。我已更改标题以反映这一点,但我将保留问题文本的其余部分,直到我找到有关该问题的更多信息。