Asp classic Request.QueryString()的类型是什么以及如何检查它是否';是空的吗?

Asp classic Request.QueryString()的类型是什么以及如何检查它是否';是空的吗?,asp-classic,jscript,request.querystring,Asp Classic,Jscript,Request.querystring,也许这是一个微不足道的问题,但我不知道Request.QueryString()的类型是什么。当我用typeof检查它时,它说它是对象。如何检查它是哪个对象以及该对象的哪个属性是URL中的字符串 我正在使用语言规范在服务器端执行此操作 如果我有这样的URL: 那么如何检查名称是否为空?它不是空的。我知道我可以将请求。QueryString(“name”)转换为字符串,并检查它是否为空字符串“”,但这是正确的方法吗?请求的结果。QueryString(未提供名称)是字符串。Request.Quer

也许这是一个微不足道的问题,但我不知道
Request.QueryString()的类型是什么。当我用typeof检查它时,它说它是对象。如何检查它是哪个对象以及该对象的哪个属性是URL中的字符串

我正在使用语言规范在服务器端执行此操作

如果我有这样的URL:
那么如何检查名称是否为空?它不是空的。我知道我可以将
请求。QueryString(“name”)
转换为字符串,并检查它是否为空字符串“”,但这是正确的方法吗?

请求的结果。QueryString
(未提供名称)是字符串。
Request.Querystring(“name”)
的结果取决于“name”是否是Querystring的一部分,如果是,它是否有值

因此,考虑到以下查询字符串:

 mypage.asp?A=1&B=
如果将它们读入变量:

x = Request.Querystring("A")
y = Request.Querystring("B")
z = Request.Querystring("C")
您将得到以下结果:x=
“1”
(一个字符串),y=
(一个空白字符串),z=
为空
(一个特殊值,它将根据您使用它的方式无声地转换为字符串或数字,即
Empty=“/code>和
Empty=0
在某种意义上都是真的).

集合是继承接口的对象。
在JScript中,最好使用它来获取实际值,而不是隐式值,因为集合(和)的值实际上是
你说你知道C,所以你会理解下面虚构的QueryString声明

var QueryString=new-IRequestDictionary();
还有几个示例,说明如何在不进行字符串转换的情况下检查JScript中的值

if(Request.QueryString("name").count==0){
    // parameter does not exist
}

if(Request.QueryString("name").item==undefined){
    // parameter does not exist
}

if(Request.QueryString("name").item!=undefined){
    // parameter exists and may be empty
}

if(Request.QueryString("name").item){
    // parameter exists and non-empty
}

好的,谢谢。我在服务器端使用语言规范
完成这项工作。在开始学习ASP.NETMVC之前,我正在努力理解ASP。我学过javascript,但我不想学VBScript。@Isevil:啊,我明白了。那样的话,恐怕我的回答对你没有用处。如果你想听听我的建议,经典的ASP和ASP.NET是完全不同的;了解前者并不能真正帮助你解决后者。如果您想使用的是asp.net,只需学习asp.net。进一步了解上述注释,您将无法在asp.net中使用javascript作为服务器端语言,因此除非您迫切需要学习经典asp,否则直接使用asp.net(我更喜欢C#)。另外,绝大多数经典ASP都是用VBScript编写的,因此如果您想使用ASP经典,请使用VBScript。@JonP Classic ASP不必使用VBScript,这只是默认的开箱即用,它可以将JScript与其他活动脚本语言一起使用。根本不需要使用VBScript,因为它们是完全可互换的。@如果两者都可以,您可以指定
,并且可以使用相同的
javascript
只是一个别名。不要混淆javascript和JScript,它们是不同的。@Dijkgraaf这不是JavaScript,这是Microsoft在其服务器端脚本语言活动服务器页面(现在称为经典ASP)中使用的JavaScript风格。不要混淆这两个服务器端版本*(由
表示)实际上被称为混淆,我知道,但不要混淆两者。值得一读,以获得更好的解释。此外,这是从马口(是微软JavaScript团队的一名工程师)直接回答标题,(实际上)经典ASP中的所有变量都是存在变量子类型。如果domain.com?param=和(Request.QueryString(“param”).item),则Microsoft VBScript运行时错误“800a000d”@user3751385这是预期结果:)不应在VBScript中使用此JScript代码。