有没有办法让所有查询string的名称/值对进入一个集合?
有没有办法让所有查询string的名称/值对进入一个集合?
我在.net中寻找一个内置的方式,如果不是的话,我可以在&上加载一个集合。
是的,使用HttpRequest.QueryString
集合:
获取HTTP查询stringvariables的集合。
你可以像这样使用它:
foreach (String key in Request.QueryString.AllKeys) { Response.Write("Key: " + key + " Value: " + Request.QueryString[key]); }
那么, Request.QueryString
已经是一个集合。 具体来说,这是一个NameValueCollection
。 如果您的代码在ASP.NET中运行,那就是您所需要的。
所以要回答你的问题:是的,有。
如果只有一个查询string表示为string,请使用HttpUtility.ParseQueryString将其parsing为一个NameValueCollection。
但是,如果这是HttpRequest的一部分,那么使用已经parsing的HttpRequest的QueryString属性。
你可以使用LINQ创build一个你可以在数组中访问的匿名对象列表:
var qsArray = Request.QueryString.AllKeys .Select(key => new { Name=key.ToString(), Value=Request.QueryString[key.ToString()]}) .ToArray();
HttpRequest
类中的QueryString
属性实际上是NameValueCollection类。 所有你需要做的是
NameValueCollection col = Request.QueryString;