すべてのクエリ文字列の名前/値のペアをコレクションに取得する方法はありますか?
.netに組み込みの方法を探しています。そうでない場合は、&で分割してコレクションをロードできます。
はい、 HttpRequest.QueryString
コレクション:
HTTPクエリ文字列変数のコレクションを取得します。
次のように使用できます。
foreach (String key in Request.QueryString.AllKeys)
{
Response.Write("Key: " + key + " Value: " + Request.QueryString[key]);
}
さて、Request.QueryString
すでにISコレクション。具体的には、NameValueCollection
です。コードがASP.NETで実行されている場合は、それで十分です。
あなたの質問に答えるために:はい、あります。
LINQを使用して、配列内でアクセスできる匿名オブジェクトのリストを作成できます。
var qsArray = Request.QueryString.AllKeys
.Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]})
.ToArray();
文字列としてのみ表現されたクエリ文字列がある場合は、 HttpUtility.ParseQueryString を使用して、NameValueCollectionに解析します。
ただし、これがHttpRequestの一部である場合は、HttpRequestの既に解析されたQueryStringプロパティを使用します。
QueryString
クラスのHttpRequest
プロパティは、実際には NameValueCollection クラスです。あなたがする必要があるのは
NameValueCollection col = Request.QueryString;