【问题标题】:Looks like a query string, but won't act as a query string看起来像查询字符串,但不会充当查询字符串
【发布时间】:2011-11-11 15:52:37
【问题描述】:

我在 asp.net 中使用 VB,

基本问题是,我想将字符串中的元素配对,就像request.QueryString() 对网页查询字符串中的元素所做的一样。

但是,我希望它查看存储为变量的字符串(即查询字符串的确切形式),而不是查看当前网页查询字符串的函数。

所以如果我定义一个字符串,例如:

Dim LooksLikeAQueryString As String = "?category1=answer1&category2=answer2"

我想要一个函数,如果我输入 LooksLikeAQueryString 和“category1”,它会输出“answer1”等。

是否有任何东西可以做到这一点,还是我必须构建自己的功能?如果我必须自己构建,有什么建议吗?

我应该补充一点,在这种情况下,我将无法将字符串附加到 url,然后运行 ​​request.QueryString。

【问题讨论】:

    标签: asp.net vb.net string query-string request.querystring


    【解决方案1】:

    您可以使用 HttpUtility.ParseQueryString 方法 - MSDN link

    【讨论】:

      【解决方案2】:

      ParseQueryString 会为你做这件事 - 类似这样的事情:

      Private Function QueryStringValue(queryString As String, key As String) As String
          Dim qscoll As NameValueCollection = HttpUtility.ParseQueryString(queryString)
          For Each s As String In qscoll.AllKeys
              If s = key Then Return qscoll(s)
          Next
          Return Nothing
      End Function
      

      用法:

          Dim LooksLikeAQueryString As String = "?category1=answer1&category2=answer2"
          Response.Write(QueryStringValue(LooksLikeAQueryString, "category2"))
      

      【讨论】:

        【解决方案3】:

        如果你不想依赖System.Web,我的头顶

        public string GetValue(string fakeQueryString,string key)
        {
            return fakeQueryString.Replace("?",String.Empty).Split('&')
                .FirstOrDefault(item=>item.Split('=')[0] == key);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-03-15
          • 2016-09-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-11-21
          相关资源
          最近更新 更多