web-dev-qa-db-ja.com

すべてのクエリ文字列の名前/値のペアをコレクションに取得する方法はありますか?

すべてのクエリ文字列の名前/値のペアをコレクションに取得する方法はありますか?

.netに組み込みの方法を探しています。そうでない場合は、&で分割してコレクションをロードできます。

53
Blankman

はい、 HttpRequest.QueryString コレクション:

HTTPクエリ文字列変数のコレクションを取得します。

次のように使用できます。

foreach (String key in Request.QueryString.AllKeys)
{
    Response.Write("Key: " + key + " Value: " + Request.QueryString[key]);
}
94
Andrew Hare

さて、Request.QueryStringすでにISコレクション。具体的には、NameValueCollectionです。コードがASP.NETで実行されている場合は、それで十分です。

あなたの質問に答えるために:はい、あります。

10
Joel Mueller

LINQを使用して、配列内でアクセスできる匿名オブジェクトのリストを作成できます。

var qsArray = Request.QueryString.AllKeys
    .Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]})
    .ToArray();
8
M. Salah

文字列としてのみ表現されたクエリ文字列がある場合は、 HttpUtility.ParseQueryString を使用して、NameValueCollectionに解析します。

ただし、これがHttpRequestの一部である場合は、HttpRequestの既に解析されたQueryStringプロパティを使用します。

6
jishi

QueryStringクラスのHttpRequestプロパティは、実際には NameValueCollection クラスです。あなたがする必要があるのは

NameValueCollection col = Request.QueryString;

2
Asad Butt