Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 看起来像查询字符串,但赢了';t充当查询字符串_Asp.net_Vb.net_String_Query String_Request.querystring - Fatal编程技术网

Asp.net 看起来像查询字符串,但赢了';t充当查询字符串

Asp.net 看起来像查询字符串,但赢了';t充当查询字符串,asp.net,vb.net,string,query-string,request.querystring,Asp.net,Vb.net,String,Query String,Request.querystring,我正在asp.net中使用VB 基本问题是,我想将字符串中的元素配对,就像request一样。QueryString()将处理网页查询字符串中的元素 但是,我不希望函数查看当前网页查询字符串,而是希望它查看存储为变量的字符串(即查询字符串的精确形式) 因此,如果我定义一个字符串,例如: Dim LooksLikeAQueryString As String = "?category1=answer1&category2=answer2" 我想要一个函数,如果我输入LooksLikeAQ

我正在asp.net中使用VB

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

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

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

Dim LooksLikeAQueryString As String = "?category1=answer1&category2=answer2"
我想要一个函数,如果我输入
LooksLikeAQueryString
和“category1”,它会输出“answer1”等

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


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

如果不想依赖我头顶的
System.Web
,可以使用HttpUtility.ParseQueryString方法

public string GetValue(string fakeQueryString,string key)
{
    return fakeQueryString.Replace("?",String.Empty).Split('&')
        .FirstOrDefault(item=>item.Split('=')[0] == key);
}
将为您完成此任务-大致如下:

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