我需要能够在我的.Net代码中处理HTML编码的&符号。
所以网址是
http://myite.com/index.aspx?language=en&Refresh=true
没有办法改变它,因为它是由其他东西生成的,所以这是我无法控制的。
如何阅读Refresh参数?
我试过了
HttpUtility.UrlDecode(Request.QueryString("Refresh"))
但我的Request.QueryString(“Refresh”)实际上是空的,所以这是毫无意义的,就像Uri.EscapeDataString一样。
这可能不是第一次发生这种情况,但我很难找到解决方案,因为大多数人会说使用UrlEncoding,但正如我所说,Url不受我的控制。
答案 0 :(得分:6)
&
应为%26
。
由于您无法更正网址。
您可以将刷新值读取为:
Request.QueryString("amp;Refresh");
请注意,您使用的服务的开发人员将来可能会更正此问题。 为此做好准备会很好。
var refresh = Request.QueryString("amp;Refresh");
if(String.IsNullOrEmpty(refresh))
refresh = Request.QueryString("Refresh");
答案 1 :(得分:0)
nunespascal答案几乎可以解决您的问题。还有一些替代方法。
如果它保证您的Refresh参数是QueryStringCollection中的第二个键,那么您可以使用Request.QueryString(1)
另一种方法是在QueryStringCollection上执行Contains
。
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