Asp.net 看起来像查询字符串,但赢了';t充当查询字符串
我正在asp.net中使用VB 基本问题是,我想将字符串中的元素配对,就像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
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"))