1

URLの文字列に表示されるクエリ文字列キーの数を数えたい。ここでのURLは文字列であるため、Request.QueryString.AllKeysを使用してURL内のキーの数をカウントすることはできません。現在、URL文字列の構造を分析し、文字列内のカウント文字列を使用してURL文字列内のクエリ文字列キーをカウントすることで、これを解決できます。私のコードサンプルでは、​​誰もがはっきりと見ることができます。

public int CountQueryStringKey(string urlString)
{
    string urlWithoutKey = urlString.Substring(0, urlString.IndexOf("?"));
    string allKeyString = urlString.Substring(urlString.IndexOf("?") + 1);
    string[] allKeyAndValue = allKeyString.Split('&');
    return allKeyAndValue.Length;
}

シンプルですが、十分ではありません。urlの文字列にクエリ文字列キーがなく、構造がわからないさまざまな種類のURLが常に存在する場合はどうなりますか。

私はこの問題の良い解決策のためにいくつかの助けが必要です。

4

2 に答える 2

2

複製 ( Get individual query parameters from Uri ) で十分な答えが得られますが、 Uri.Queryを使用して Url のクエリ部分を抽出することをお勧めします。他の質問で推奨されているように、 HttpUtility.ParseQueryStringを続行するよりも。NameValueCollection.Count よりクエリパラメータの数を取得します。

var queryParameters = HttpUtility.ParseQueryString(new Uri(urlString).Query);
var numberOfParameter = queryParameters.Count;
于 2013-03-05T07:13:24.363 に答える
1

この投稿を見てください。ここでは、HttpUtility を使用して、通常の文字列からクエリ文字列パラメーターを取得できます。

Httpユーティリティ

于 2013-03-05T07:13:58.207 に答える