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