QueryString 不接受 & - 需要



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

所以Url是

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

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

如何读取Refresh参数?

我试过

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

但是我的Request.QueryString("刷新")实际上是空的,所以这毫无意义,就像Uri.EscapeDataString.一样

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

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

因为你无法更正网址。

您可以将刷新值读取为:

Request.QueryString("amp;Refresh");

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

var refresh = Request.QueryString("amp;Refresh");
if(String.IsNullOrEmpty(refresh))
    refresh = Request.QueryString("Refresh");

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

相关内容

  • 没有找到相关文章

最新更新