Dan*_*ler 11 c# url query-string
我已经看到了一些如何使用C#检查URL中是否存在查询字符串的示例:
www.site.com/index?query=yes
if(Request.QueryString["query"]=="yes")
Run Code Online (Sandbox Code Playgroud)
但是如何在没有参数的情况下检查字符串呢?我只需要看看它是否存在.
www.site.com/index?query
if(Request.QueryString["query"] != null) //why is this always null?
Run Code Online (Sandbox Code Playgroud)
我知道可能有一个简单的答案,我会觉得愚蠢,但我还没有找到它.谢谢!
感谢 Ludovic 的回答,这是检查它的最快方法
if(Request.QueryString.GetValues(null)?.Contains("query")??false)
Run Code Online (Sandbox Code Playgroud)
如果您未指定值,则Key将自动设置为null,因此您无法检查其存在.
为了检查值是否实际存在,如果它包含您的Key,则可以检查值的集合等于null:
Request.QueryString.GetValues(null).Contains("query")
Run Code Online (Sandbox Code Playgroud)
它返回null是因为在该查询字符串中它没有该键的值。我认为你正在寻找的支票是这样的:
if(Request.QueryString.Keys.OfType<string>().Any(k => k == "query"))
Run Code Online (Sandbox Code Playgroud)
甚至:
if(Request.QueryString.AllKeys.Any(k => k == "query"))
Run Code Online (Sandbox Code Playgroud)
后者可能更合适,因为该数组已被缓存。