当我有一个网址时:
http://www.mysite.com/?MyTest=
MyTest显示为请求对象的查询字符串中的键。
如果我删除=符号,如:
它不再显示在查询字符串键中(如果您愿意,则显示为AllKeys)。
如何确定此密钥是否存在?
答案 0 :(得分:4)
这是非常奇怪的行为,没有=符号,Request返回的QueryString对象的Count为1,值为MyTest,键为null。
您可以测试QueryString以查看它是否包含您期望的值:
if(Request.QueryString.ToString().Contains("MyTest"))
{
// Do stuff
}
编辑:this answer提供了一些关于无密钥参数发生情况的更多解释(滚动过去接受的答案)。
答案 1 :(得分:1)
我相信你可以Request.QueryString[null]
或Request.QueryString.GetValues(null)
。
null
来获取它们。要检查这两种情况,请执行以下操作:
bool myTestPresent = Request.QueryString["MyTest"] != null
|| Request.QueryString.GetValues(null).Contains("MyTest", StringComparer.OrdinalIgnoreCase);
答案 2 :(得分:0)
您应该使用ToString()
功能
if (Request.QueryString.ToString() == "MyTest")
{
//do something
}