有没有办法将所有查询字符串名称/值对都放入集合中?

时间:2010-03-03 22:07:23

标签: c# asp.net collections query-string

有没有办法将所有查询字符串名称/值对都集成到集合中?

我正在寻找.net的内置方式,如果不是我可以分开&并加载一个集合。

5 个答案:

答案 0 :(得分:92)

是的,请使用HttpRequest.QueryString集合:

  

获取HTTP查询字符串变量的集合。

你可以像这样使用它:

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

答案 1 :(得分:9)

嗯,Request.QueryString已经是一个集合。具体来说,它是NameValueCollection。如果您的代码在ASP.NET中运行,那就是您所需要的。

所以回答你的问题:是的,有。

答案 2 :(得分:7)

您可以使用LINQ创建可在数组中访问的匿名对象列表:

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

答案 3 :(得分:6)

如果只有一个查询字符串仅表示为字符串,请使用HttpUtility.ParseQueryString将其解析为NameValueCollection。

但是,如果这是HttpRequest的一部分,那么使用已经解析的HttpRequest的QueryString属性。

答案 4 :(得分:2)

QueryString类中的

HttpRequest属性实际上是NameValueCollection类。您需要做的就是

  

NameValueCollection col =   的Request.QueryString;