bra*_*rad 24 asp.net query-string
foo
使用asp.net 检查以下url的查询字符串中的参数的正确方法是什么?这甚至可能吗?
http://example.com?bar=3&foo
Run Code Online (Sandbox Code Playgroud)
我试图检查Request["foo"]
以及Request.QueryString["foo"]
和我得到null
两个.我也尝试List
使用QueryString
集合中的值填充a ,但正如我在下面提到的,它不包括值.
我明白没有价值,但不应该Request["foo"]
返回空字符串而不是null
?有没有办法找出一个查询字符串密钥是否存在,即使它没有值?
我发现这里是Request.QueryString.AllKeys
包含null
空白的查询字符串参数.
如下面由James和Dreas所述,正则表达式解析原始URL可能是最好的(也可能是唯一的)方法.
Regex.IsMatch(Request.RawUrl, "[?&]thumb([&=]|$)")
Run Code Online (Sandbox Code Playgroud)
joe*_*lvh 43
您可以使用它null
作为键,NameValueCollection
它将为您提供逗号分隔的没有值的参数名称列表.
因为http://example.com?bar=3&foo
你会使用Request.QueryString[null]
它会检索foo
.
如果您有多个没有值的参数名称,它将为您提供逗号分隔的值.
因为http://example.com?bar=3&foo&test
你会得到foo,test
一个价值回来.
更新:
您实际上可以Request.QueryString.GetValues(null)
用来获取没有值的参数名称.
你得到null因为foo
参数没有值.
......究竟是什么问题?
如果您仍想检查它的存在(虽然它缺少值),请尝试以下方法:
bool doesFooExist = Request.Url.AbsoluteUri.IndexOf("foo=") >= 0 ? true : false;
Run Code Online (Sandbox Code Playgroud)