【发布时间】:2011-01-23 10:33:25
【问题描述】:
有没有办法将所有查询字符串名称/值对放入一个集合中?
我正在寻找 .net 中的内置方式,如果没有,我可以在 & 上拆分并加载一个集合。
【问题讨论】:
标签: c# asp.net collections query-string
有没有办法将所有查询字符串名称/值对放入一个集合中?
我正在寻找 .net 中的内置方式,如果没有,我可以在 & 上拆分并加载一个集合。
【问题讨论】:
标签: c# asp.net collections query-string
您可以使用 LINQ 创建可以在数组中访问的匿名对象列表:
var qsArray = Request.QueryString.AllKeys
.Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]})
.ToArray();
【讨论】:
如果您的查询字符串仅表示为字符串,请使用HttpUtility.ParseQueryString 将其解析为 NameValueCollection。
但是,如果这是 HttpRequest 的一部分,则使用已解析的 HttpRequest 的 QueryString 属性。
【讨论】:
HttpRequest 类中的QueryString 属性实际上是NameValueCollection 类。你需要做的就是
NameValueCollection col = 请求.QueryString;
【讨论】:
嗯,Request.QueryString 已经是一个集合了。具体来说,它是NameValueCollection。如果您的代码在 ASP.NET 中运行,这就是您所需要的。
所以回答你的问题:是的,有。
【讨论】:
是的,使用HttpRequest.QueryString 集合:
获取 HTTP 查询字符串变量的集合。
你可以这样使用它:
foreach (String key in Request.QueryString.AllKeys)
{
Response.Write("Key: " + key + " Value: " + Request.QueryString[key]);
}
【讨论】: