看起来像一个查询字符串,但不会充当查询字符串

时间:2011-11-11 15:52:38

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

我在asp.net中使用VB,

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

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

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

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

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

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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"))

答案 2 :(得分:0)

如果你不想要System.Web的依赖,那就是我的头脑

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