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