2012-02-08 5 views
10

Qual è la differenza tra questi due in VBScript:Richiesta contro Request.QueryString

Request("startDate") 

Request.QueryString["startDate"] 

E dov'è Request("startDate") documentate? Non vedo questo uso qui:

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

+1

La tua domanda ha ricevuto una risposta, tuttavia non è stato offerto un consiglio appropriato. Cioè: non usare 'Request (" name ")'. Utilizza sempre la raccolta obbligatoria. Perché la SM abbia mai incluso questa "scorciatoia" che non riesco a capire, porta solo alla confusione, all'aborto e all'incertezza, oh e domande come questa. – AnthonyWJones

+0

possibile duplicato di [Request() vs Request.QueryString()] (http://stackoverflow.com/questions/3178536/request-vs-request-querystring) – andlrc

+0

Dup! http://stackoverflow.com/questions/3178536/request-vs-request-querystring – Jorgesys

risposta

16

La documentazione ufficiale per l'oggetto Request in ASP classico è qui: http://msdn.microsoft.com/en-us/library/ms524948%28VS.90%29.aspx

Citando la parte pertinente per questa domanda:

Tutte le variabili sono accessibili direttamente chiamando Request (variabile) senza il nome della collezione. In questo caso, il server Web cerca le collezioni nel seguente ordine:

  • QueryString
  • Modulo
  • Cookies
  • ClientCertificate
  • ServerVariables

Se una variabile con la lo stesso nome esiste in più di una collezione, l'oggetto Request restituisce il fi per prima cosa che l'oggetto incontri .


EDIT: AnthonyWJones fatto un grande commento sulla questione: Evitare di utilizzare la sintassi Request("name"). In realtà, questo è menzionato nel link documentazione di cui sopra:

E 'fortemente raccomandato che quando ci si riferisce ai membri di una collezione il nome completo da utilizzare. Ad esempio, anziché ("AUTH_USER"), utilizzare Request.ServerVariables ("AUTH_USER"). Questo consente al server di individuare l'oggetto più rapidamente.

2

Vedi Request() vs Request.QueryString()

Da quello che ho capito quando si utilizza Richiesta su di essa la propria verrà restituito il primo elemento abbinato nella collezione richiesta. ben spiegato nella soluzione allegata.

1

Siamo spiacenti di rispondere a questa domanda, ma dato gli avvertimenti sull'utilizzo di Request ("param"), ho dovuto aggiungere i miei due centesimi. In questo caso particolare c'è una buona ragione per usare Request ("param") invece di Request.QueryString ("param"): Permette di scrivere codice che accetterà i parametri come parte di una stringa di query o quando inviato attraverso un modulo. Mi imbatto regolarmente in situazioni in cui ciò non è solo pratico, ma auspicabile.

+1

Sei un punto eccellente, ma questo dovrebbe essere un commento, non una risposta. –