【问题标题】:Is there a way to get all the querystring name/value pairs into a collection?有没有办法将所有查询字符串名称/值对放入一个集合中?
【发布时间】:2011-01-23 10:33:25
【问题描述】:

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

我正在寻找 .net 中的内置方式,如果没有,我可以在 & 上拆分并加载一个集合。

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        HttpRequest 类中的QueryString 属性实际上是NameValueCollection 类。你需要做的就是

        NameValueCollection col = 请求.QueryString;

        【讨论】:

          【解决方案4】:

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

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

          【讨论】:

          • 那么,您如何遍历名称值集合并从每个元素中获取名称和值呢?虽然它确实实现了 IEnumerable,但循环它会为您提供对象。
          【解决方案5】:

          是的,使用HttpRequest.QueryString 集合:

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

          你可以这样使用它:

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

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-23
          • 2021-03-24
          • 2021-05-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多