Unterschied zwischen Request.QueryString ["id"] und Request ["id"]

7

Kann mir jemand sagen, ob es einen Unterschied zwischen:

gibt

Request.QueryString["id"] und Request["id"]

Wenn ja, welche ist besser zu verwenden?

    
ANP 10.08.2010, 11:31
quelle

6 Antworten

13

Request["id"] erhält einen Wert aus den Sammlungen QueryString , Form , Cookies oder ServerVariables . Die Reihenfolge, in der sie gesucht werden, ist nicht in der Dokumentation angegeben, aber wenn Sie sich den Quellcode ansehen, sehen Sie, dass es die Reihenfolge ist, in der sie erwähnt werden.

Wenn Sie also wissen, wo sich Ihre Variable befindet, was Sie normalerweise tun, ist es besser, die spezifischere Option zu verwenden.

    
Ronald Wildenberg 10.08.2010, 11:34
quelle
3

Die Anforderungssammlung ist eine Obermenge von QueryString, zusammen mit einigen weiteren Daten, die sich auf die aktuelle Anfrage beziehen.

für "besser" - ich würde empfehlen, dass Sie präzise und explizit (dh verwenden Sie QueryString), um den Überraschungsfaktor zu vermeiden, wenn Sie unerwartete Ergebnisse erhalten, nur um zu erkennen, dass Sie einen Schlüssel für eine bestimmte Anfrage verwendet haben hat keinen Wert für die Abfragezeichenfolge angegeben, ist jedoch in einer anderen Sammlung vorhanden.

    
Ken Egozi 10.08.2010 11:37
quelle
1

Gemäß der Dokumentation ist der HttpRequest indexer

  

Der QueryString, Formular, Cookies oder   ServerVariables-Auflistungsmember   im Schlüsselparameter angegeben.

Ich würde lieber Request.QueryString["id"] verwenden, da es expliziter ist, woher der Wert kommt.

    
Lee 10.08.2010 11:37
quelle
1

Request.QueryString ["id"] schaut in die Sammlung wurde per QueryString übergeben. Request.Item ["id"] untersucht alle Sammlungen (QueryString , Formular, Cookies oder ServerVariablen). Daher sollte die QueryString-Eigenschaft nach Möglichkeit bevorzugt werden, da sie kleiner ist.

    
Tim Schmelter 10.08.2010 11:37
quelle
1

Gemäß Reflector.Net ist Request ["id"] definiert als:

%Vor%     
Enigmativity 10.08.2010 11:44
quelle
1

Request.QueryString["id"] gibt den Wert eines Elements in der Abfragezeichenfolge mit dem Schlüssel id zurück, während Request["id"] ein Element aus einem von Request.QueryString, Request.Form, Request.Cookies oder zurückgibt Request.ServerVariables.

Es ist erwähnenswert, dass die Dokumentation für Request.Item ( Auf das, worauf Sie tatsächlich zugreifen, wenn Sie Request["id"] aufrufen, gibt nicht die Reihenfolge an, in der die Sammlungen durchsucht werden, sodass Sie theoretisch je nach ASP-Version ein anderes Ergebnis erhalten könnten. Netz, auf dem du rennst.

Wenn Sie wissen, dass der gewünschte Wert in Ihrer Abfragezeichenfolge enthalten ist, ist es immer besser, Request.QueryString["id"] für den Zugriff zu verwenden, als Request["id"] .

    
Rob 10.08.2010 11:35
quelle

Tags und Links