2012-02-08 13 views
10

¿Cuál es la diferencia entre estos dos en VBScript:Solicitud frente Request.QueryString

Request("startDate") 

Request.QueryString["startDate"] 

y dónde está Request("startDate") documentados? No veo este uso aquí:

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

+1

Su pregunta ha sido respondida; sin embargo, no se ha ofrecido el asesoramiento adecuado. Es decir: no use 'Request (" name ")'. Siempre use explícitamente la colección requerida. ¿Por qué MS alguna vez incluyó este "atajo" que no puedo entender, solo lleva a la confusión, la abigarrada y la incertidumbre, ah y preguntas como esta. – AnthonyWJones

+0

posible duplicado de [Solicitud() frente a Request.QueryString()] (http://stackoverflow.com/questions/3178536/request-vs-request-querystring) – andlrc

+0

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

Respuesta

16

La documentación oficial para el objeto Request en ASP clásico está aquí: http://msdn.microsoft.com/en-us/library/ms524948%28VS.90%29.aspx

Citando la parte relevante para esta pregunta:

Todas las variables se puede acceder directamente llamando Solicitud (variable) sin el nombre de la colección. En este caso, el servidor Web busca en los colecciones en el siguiente orden:

  • cadena de consulta
  • Formulario
  • Galletas
  • ClientCertificate
  • ServerVariables

Si una variable con el el mismo nombre existe en más de una colección, el objeto Solicitud devuelve la fi primera instancia que encuentra el objeto .


EDIT: AnthonyWJones hizo un gran comentario sobre la cuestión: Evitar el uso de la sintaxis Request("name"). De hecho, esto se menciona en el enlace de documentación anterior:

Se recomienda encarecidamente que cuando se hace referencia a los miembros de una colección el nombre completo usarse. Por ejemplo, en lugar de Solicitud. ("AUTH_USER") use Request.ServerVariables ("AUTH_USER"). Este le permite al servidor ubicar el artículo más rápidamente.

2

Ver Request() vs Request.QueryString()

Por lo que entiendo cuando se utiliza Solicitud por sí mismo va a devolver el primer elemento coincidente en la colección petición. bien explicado en la solución adjunta.

1

Lamento haber descubierto esta pregunta, pero teniendo en cuenta las advertencias contra el uso de Request ("param"), tuve que agregar mis dos centavos. En este caso particular, hay una buena razón para usar Request ("param") en lugar de Request.QueryString ("param"): le permite escribir código que aceptará parámetros como parte de una cadena de consulta o cuando se envía a través de un formulario. Normalmente me encuentro con situaciones en las que no solo es útil, sino también deseable.

+1

Usted hace un excelente punto, pero esto realmente debería ser un comentario, no una respuesta. –

Cuestiones relacionadas