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

发布于 2024-12-15 13:38:02 字数 500 浏览 7 评论 0原文

我正在 asp.net 中使用 VB,

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

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

因此,如果我定义一个字符串,例如:

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

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

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

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

淑女气质 2024-12-22 13:38:02

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

You can use the HttpUtility.ParseQueryString method - MSDN link

乖乖公主 2024-12-22 13:38:02

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

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"))
深陷 2024-12-22 13:38:02

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

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

If you dont want the dependancy of System.Web, of the top of my head

public string GetValue(string fakeQueryString,string key)
{
    return fakeQueryString.Replace("?",String.Empty).Split('&')
        .FirstOrDefault(item=>item.Split('=')[0] == key);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文