2012-02-08 108 views
10

是什麼在VBScript這兩者之間的區別:請求對的Request.QueryString

Request("startDate") 

Request.QueryString["startDate"] 

在哪裏,Request("startDate")記錄?我沒有在這裏看到這種用法:

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

+1

您的問題已被回答,但沒有提供適當的建議。即:不要使用Request(「name」)。始終明確使用所需的集合。爲什麼MS包括我無法理解的這個「捷徑」,這隻會導致混淆,含糊和不確定性,以及像這樣的問題。 – AnthonyWJones 2012-02-09 10:47:14

+0

可能重複[Request()vs Request.QueryString()](http://stackoverflow.com/questions/3178536/request-vs-request-querystring) – andlrc 2015-06-05 07:37:11

+0

Dup! http://stackoverflow.com/questions/3178536/request-vs-request-querystring – Jorgesys 2015-07-21 18:14:08

回答

16

在ASP經典Request對象的官方文檔是在這裏:http://msdn.microsoft.com/en-us/library/ms524948%28VS.90%29.aspx

報價爲這一問題的相關部分:

所有變量都可以通過調用請求(變量)直接訪問 無集合名稱。在這種情況下,Web服務器按以下順序搜索 集合:

  • 查詢字符串
  • 形式
  • 餅乾
  • ClientCertificate
  • ServerVariables

如果用一個變量相同的名稱存在於多個集合中, Request對象返回fi遇到對象 。


編輯:AnthonyWJones就這一問題有很大意見:避免使用Request("name")語法。事實上,這是在上面的文檔鏈接中提到:

強烈建議指的是 集合全名的成員時使用。例如,而不是 請求。(「AUTH_USER」)使用Request.ServerVariables(「AUTH_USER」)。這個 允許服務器更快地找到物品。

1

對不起疏通這個問題,但考慮到使用請求(「param」)的警告,我不得不補充我的兩分錢。在這種特殊情況下,有一個很好的理由使用Request(「param」)而不是Request.QueryString(「param」):它允許您編寫將接受參數作爲查詢字符串的一部分或通過表單提交的代碼。我經常遇到這種情況,不僅方便,而且令人滿意。

+1

你提出了一個很好的觀點,但這真的應該是一個評論,而不是一個答案。 – 2012-11-17 04:45:22