请求与Request.QueryString

时间:2012-02-08 15:38:58

标签: asp-classic vbscript

这两个在VBScript中有什么区别:

Request("startDate")

Request.QueryString["startDate"]

Request("startDate")在哪里记录?我在这里没有看到这种用法:

http://www.w3schools.com/asp/asp_ref_request.asp

3 个答案:

答案 0 :(得分:16)

ASP classic中Request对象的官方文档位于:http://msdn.microsoft.com/en-us/library/ms524948%28VS.90%29.aspx

引用此问题的相关部分:

  

所有变量都可以通过调用Request(变量)直接访问   没有集合名称。在这种情况下,Web服务器搜索   按以下顺序收集:

     
      
  • 查询字符串
  •   
  • 表格
  •   
  • 缓存
  •   
  • ClientCertificate
  •   
  • ServerVariables
  •   
     

如果多个集合中存在具有相同名称的变量,   Request对象返回该对象的第一个实例   遭遇。


编辑:AnthonyWJones对这个问题做了很好的评论:避免使用Request("name")语法。事实上,这在上面的文档链接中提到:

  

强烈建议在提及a的成员时   集合使用全名。例如,而不是   请求。(“AUTH_USER”)使用 Request.ServerVariables (“AUTH_USER”)。这个   允许服务器更快地找到项目。

答案 1 :(得分:2)

请参阅Request() vs Request.QueryString()

根据我的理解,当您自己使用Request时,它将返回请求集合中的第一个匹配项。在随附的解决方案中得到了很好的解释。

答案 2 :(得分:1)

很抱歉疏通这个问题,但鉴于警告不要使用Request(“param”),我不得不加上我的两分钱。在这种特殊情况下,有一个很好的理由使用Request(“param”)而不是Request.QueryString(“param”):它允许您编写将接受参数作为查询字符串的一部分或通过表单提交的代码。我经常遇到不仅方便而且可取的情况。