问题
什么是正确的方法检查foo参数在以下url的querystring使用asp.net?这是可能吗?@H_502_3@
http://example.com?bar=3&foo
我试过检查Request [“foo”]以及Request.QueryString [“foo”],我得到null两者。我也尝试用QueryString集合中的值填充列表,但正如我在下面提到的,它不包括该值。@H_502_3@
问题@H_502_3@
我明白,没有价值,但应该不Request [“foo”]返回一个空字符串,而不是null?有没有办法找出一个querystring键是否存在,即使它没有值吗?@H_502_3@
笔记@H_502_3@
我发现here,Request.QueryString.AllKeys包括null为空查询字符串参数。@H_502_3@
[编辑]@H_502_3@
如下面的James和Dreas所述,解析原始url的正则表达式可能是最好的(也许只有)方法。@H_502_3@
Regex.IsMatch(Request.RawUrl,"[?&]thumb([&=]|$)")
解决方法
您可以使用null作为NameValueCollection的键,它将给您一个没有值的参数名称的逗号分隔列表。
对于http://example.com?bar=3\u0026amp;foo你会使用Request.QueryString [null],它会检索foo。@H_502_3@
如果有多个参数名称没有值,它将给你一个以逗号分隔的值。@H_502_3@
对于http://example.com?bar=3\u0026amp;foo\u0026amp;test,您会得到foo,测试为一个值。@H_502_3@
更新:@H_502_3@
你实际上可以使用Request.QueryString.GetValues(null)来获取没有值的参数名称。@H_502_3@