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

Bla*_*man 54 c# asp.net collections query-string

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

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

And*_*are 96

是的,使用HttpRequest.QueryString集合:

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

你可以像这样使用它:

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

  • 有些事情要指出这只会让你得到PAIRS,如果你碰巧有一个查询字符串,好吗?你可以从这个方法中得到任何东西.http://stackoverflow.com/questions/14902059/check-if-unassigned-variable-exists-in-request-querystring (8认同)

Joe*_*ler 10

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

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


M. *_*lah 8

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

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


jis*_*shi 6

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

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