【发布时间】:2008-12-30 14:20:28
【问题描述】:
问题
使用 asp.net 在以下 url 的查询字符串中检查 foo 参数的正确方法是什么?这甚至可能吗?
http://example.com?bar=3&foo
我尝试检查Request["foo"] 和Request.QueryString["foo"],我得到null 两者。我还尝试使用 QueryString 集合中的值填充 List,但正如我在下面提到的,它不包含该值。
问题
我知道没有价值,但Request["foo"] 不应该返回一个空字符串而不是null?有没有办法找出查询字符串键是否存在,即使它没有值?
注意事项
我发现here Request.QueryString.AllKeys 包含null 用于空白查询字符串参数。
[编辑]
正如James 和Dreas 所述,解析原始网址的正则表达式可能是最好的(也可能是唯一的)方法。
Regex.IsMatch(Request.RawUrl, "[?&]thumb([&=]|$)")
【问题讨论】:
-
检查查询字符串是否存在但为空的意义何在?它的价值(实际上缺乏价值)同样没用。
-
@Dreas,我假设有一个隐含的“=true”在起作用(而完全没有 foo 参数是隐含的“foo=false”)
-
bool doesFooExist = Request.Url.AbsoluteUri.IndexOf("foo=") >= 0 ?真假; //即使没有值也会返回true
标签: asp.net query-string