asp.net - 空的 QueryString 参数

标签 asp.net query-string

问题
检查 foo 的正确方法是什么?使用 asp.net 的以下 url 的查询字符串中的参数?这甚至可能吗?

http://example.com?bar=3&foo
我试过检查 Request["foo"]以及 Request.QueryString["foo"]我得到 null对彼此而言。我也试过填充 List来自 QueryString 的值收藏,但正如我在下面提到的,它不包括值(value)。
问题
我知道没有值(value),但不应该Request["foo"]返回一个空字符串而不是 null ?有没有办法找出查询字符串键是否存在,即使它没有值?
笔记
我找到了 here那个Request.QueryString.AllKeys包括 null对于空白查询字符串参数。
[编辑]
如下文 James 所述和 Dreas解析原始 url 的正则表达式可能是最好的(也可能是唯一的)方法。
Regex.IsMatch(Request.RawUrl, "[?&]thumb([&=]|$)")

最佳答案

您可以使用 null作为 NameValueCollection 的 key 它会给你一个逗号分隔的没有值的参数名称列表。

对于 http://example.com?bar=3&foo你会用 Request.QueryString[null]它会检索 foo .

如果您有多个没有值的参数名称,它将为您提供一个以逗号分隔的值。

对于 http://example.com?bar=3&foo&test你会得到 foo,test作为值(value)回馈。

更新:

你实际上可以使用 Request.QueryString.GetValues(null)获取没有值的参数名称。

关于asp.net - 空的 QueryString 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400364/

相关文章:

asp.net - 检查 HTTP 请求查询字符串并在出现意外参数时指示错误是个好主意吗?

asp.net - 如何从 asp.net 中具有 UNICODE 值的 URL 获取正确的 QueryString 值?

javascript - SelectedIndexChange 事件处理程序代码

c# - DbContext 可以组合而不是继承吗?

c# - 从数组构建 if 条件

html - 创建一个图层开/关的页面

c# - 在 IE 中,QueryString 的奇怪问题是将 "copy"作为参数

URL 查询字符串的 C# 正则表达式

c# - 将查询字符串隐藏到 URL 中

asp.net - itextsharp 不关闭文件