2010-07-05 17 views
6

Recientemente he empezado a usar Request("key") en lugar de Request.QueryString("key") para acceder a mis valores de querystring. Sin embargo, he leído que:Solicitud() frente a Request.QueryString()

Obtiene el objeto especificado a partir de los System.Web.HttpRequest.Cookies, System.Web.HttpRequest.Form, System.Web.HttpRequest.QueryString, System.Web.HttpRequest. ServidorVariables

Por lo tanto, si tengo una clave de consulta y una clave de cookie que son iguales, ¿qué valor se devuelve?

Respuesta

15

Están comprobarse en el siguiente orden:

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

La búsqueda está en cortocircuito, por lo que tan pronto como la clave coincidente se encuentra el valor se devuelve.

Por lo tanto, para responder a su pregunta, un elemento correspondiente QueryString tiene prioridad sobre Cookies.

+2

Para obtener más información, consulte la excelente publicación de Scott Hanselman en este blog hace un tiempo en http://www.hanselman.com/blog/ASPNETParamsCollectionVsQueryStringFormsVsRequestindexAndDoubleDecoding.aspx –

+0

Gracias Luke. El único problema que veo con el uso de esto es que si tuviera que hacer una declaración If sobre si existía o no una cadena de consulta, el uso de 'solicitud' devolvería verdadero si existiera una cookie del mismo nombre. Por lo tanto, creo que me quedaré con 'Request.Querystring'. Además, será útil para otros desarrolladores saber de inmediato de dónde se solicita esta información. Sin embargo, es bueno saber que esta forma de mano corta está disponible para su uso futuro, ¡salud! – Curt

Cuestiones relacionadas