2010-07-05 4 views
6

Ich habe vor kurzem begonnen, Request("key") anstelle von Request.QueryString("key") zu verwenden, um auf meine Querystring-Werte zuzugreifen. Allerdings habe ich gelesen, dass:Request() vs Request.QueryString()

Ruft das angegebene Objekt aus den System.Web.HttpRequest.Cookies, System.Web.HttpRequest.Form, System.Web.HttpRequest.QueryString, System.Web.HttpRequest. ServerVariablen

Daher, wenn ich einen Querystring-Schlüssel und Cookie-Schlüssel haben, die gleich sind, welcher Wert zurückgegeben wird?

Antwort

15

Sie sind in der folgenden Reihenfolge geprüft:

  1. QueryString
  2. Form
  3. Cookies
  4. ServerVariables

Die Suche ist kurzgeschlossen, so sobald ein passender Schlüssel gefunden, der Wert wird zurückgegeben. Um Ihre Frage zu beantworten, hat ein passender Artikel QueryString Vorrang vor Cookies.

+2

Weitere Informationen finden Sie unter Scott Hanselmans exzellenten Blogbeitrag dazu vor einer Weile unter http://www.hanselman.com/blog/ASPNETParamsCollectionVsQueryStringFormsVsRequestindexAndDoubleDecoding.aspx –

+0

Danke Luke. Das einzige Problem, das ich bei der Verwendung sehe, ist, dass, wenn ich eine If-Anweisung ausführen würde, ob eine Querystring existiert oder nicht, die Verwendung von "request" true zurückgibt, wenn ein Cookie mit demselben Namen existiert. Daher denke ich, ich bleibe bei 'Request.Querystring'. Außerdem ist es für andere Entwickler hilfreich, sofort zu wissen, wo diese Informationen angefordert werden. Es ist jedoch gut zu wissen, dass dieser kurzlebige Weg für zukünftige Verwendung verfügbar ist, Prost. – Curt