3

.NetコードでHTMLエンコードされたアンパサンドを処理できる必要があります。

つまり、URLは

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

URLを修正できないので。

更新値は次のように読み取ることができます。

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の2番目のキーであることが保証されている場合は、次を使用できます。Request.QueryString(1)

もう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 に答える