3

我需要能够在我的 .Net 代码中处理 HTML 编码的 & 符号。

所以网址是

http://myite.com/index.aspx?language=en&Refresh=true

没有办法改变它,因为它是由其他东西生成的,所以这是我无法控制的。

如何读取 Refresh 参数?

我努力了

HttpUtility.UrlDecode(Request.QueryString("Refresh")) 

但我的 Request.QueryString("Refresh") 实际上是空的,所以这是没有意义的,Uri.EscapeDataString 也是如此。

这不可能是第一次发生这种情况,但我正在努力寻找解决方案,因为大多数人会说使用 UrlEncoding,但正如我所说,Url 超出了我的控制范围。

4

2 回答 2

6

&在您的查询字符串中应该是%26.

由于您无法更正网址。

您可以将刷新值读取为:

Request.QueryString("amp;Refresh");

请注意,您正在使用的服务的开发人员将来可能会更正此问题。最好已经为此做好准备。

var refresh = Request.QueryString("amp;Refresh");
if(String.IsNullOrEmpty(refresh))
    refresh = Request.QueryString("Refresh");
于 2012-08-29T04:33:14.273 回答
0

nunespascal 答案几乎可以解决您的问题。有一些替代方法。

如果它保证您的 Refresh 参数是 QueryStringCollection 中的第二个键,那么您可以使用Request.QueryString(1)

Contains另一种方法是对QueryStringCollection做一个。

If Request.QueryString IsNot Nothing AndAlso Request.QueryString.AllKeys.Count() > 0 Then
    Dim refreshKey = Request.QueryString.AllKeys.FirstOrDefault(Function(nv) nv.Contains("Refresh"))
    If refreshKey IsNot Nothing Then
        Dim refreshValue = Request.QueryString(refreshKey)
    End If
End If
于 2012-08-29T05:08:11.990 回答