Search code examples
asp.netvb.netstringquery-stringrequest.querystring

Looks like a query string, but won't act as a query string


I am working with VB in asp.net,

The basic problem is, I want to pair up the elements in a string, exactly like request.QueryString() will do to the elements in the query string of the web page.

However instead of the function looking at the current webpage query string I want it to look at a string (that is in the exact form of a query string) stored as a variable.

So if I define a string such as:

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

I want a function that if I input LooksLikeAQueryString and "category1" it outputs "answer1" etc.

Is there anything that can already do this or do I have to build my own function? If I have to build my own, any tips?

I should add that in this case I won't be able to append the string to the url and then run request.QueryString.


Solution

  • ParseQueryString will do it for you - something along these lines:

    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
    

    Usage:

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