您最喜爱的技术社区。浏览所有集合
现在可以在Stack Overflow for Teams上使用了!你工作的AI功能:搜索、IDE和聊天。
提出问题,找到答案,并与团队堆栈溢出协作。探索团队
找到集中、可信的内容,围绕您最常用的技术进行协作。
团队
工作问答
在一个结构化且易于搜索的位置内连接和共享知识。
尽早访问并查看新功能的预览。
检查foo公司使用asp.net的以下url查询字符串中的参数?这可能吗?
foo公司
http://example.com?bar=3&foo
我试过检查请求[“foo”]以及请求。QueryString[“foo”]我得到了无效的对于这两种情况。我还尝试填充列表使用来自查询字符串集合,但正如我在下面提到的,它不包括价值。
请求[“foo”]
请求。QueryString[“foo”]
无效的
列表
查询字符串
我知道没有价值,但不应该请求[“foo”]返回空字符串,而不是无效的? 有没有办法找出一个查询字符串键是否存在,即使它没有值?
我找到了在这里那个请求。查询字符串.AllKeys包括无效的用于空白查询字符串参数。
请求。查询字符串.AllKeys
如下所述詹姆斯和德拉斯解析原始url的Regex可能是最好的(也可能是唯一的)方法。
Regex公司。IsMatch(Request.RawUrl,“[?&]thumb([&=]|$)”)
你可以使用无效的作为名称值集合它将为您提供一个以逗号分隔的没有值的参数名列表。
名称值集合
对于http://example.com?bar=3&foo你会用请求。QueryString[空]它会恢复foo公司.
请求。QueryString[空]
如果有多个参数名没有值,它将为您提供一个以逗号分隔的值。
对于http://example.com?bar=3&foo&test你会得到foo,测试作为返回值。
http://example.com?bar=3&foo&test
foo,测试
更新:
你实际上可以使用请求。QueryString.GetValues(空)获取没有值的参数名。
请求。QueryString.GetValues(空)
请求。服务器变量[“QUERY_STRING”]将返回完整的查询字符串作为字符串。然后使用Regex或IndexOf进行搜索
请求。服务器变量[“QUERY_STRING”]
您得到null是因为foo公司参数没有值。
……到底是什么问题?
如果您仍然想检查它是否存在(尽管它缺少值),请尝试如下操作:
bool doesFooExist=请求。Url。AbsoluteUri.IndexOf(“foo=”)>=0?真:假;
Dreas是正确的。变量“bar”有一个值,但foo没有。
QueryString[“Bar”]将返回3,因为它具有与变量Bar关联的值3。然而,Foo将返回null,因为它们没有值,并且当您对变量或键调用QueryString时,您查询的是值,而不是键,所以这就是为什么您返回null的原因。
查询字符串可能是浪费的。如果您使用请求。参数[“”]或迭代它,然后您将找到所需的参数。它真的比其他东西方便。
如果你在这方面需要帮助,请告诉我。
提醒:堆栈溢出上不允许使用人工智能工具生成的答案。了解更多信息
必需,但从未显示
Required, but never shown
单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.