Pregunta

Recientemente encontré un problema en el que un valor era nulo si se accedía con Request.Form pero estaba bien si se recuperaba con Request.Params.¿Cuáles son las diferencias entre estos métodos que podrían causar esto?

¿Fue útil?

Solución

Request.Form solo incluye variables publicadas a través de un formulario, mientras que Request.Params incluye variables de formulario publicadas y variables de obtención especificadas como parámetros de URL.

Otros consejos

Request.Params contiene una combinación de QueryString, Form, Cookies y ServerVariables (agregados en ese orden).

La diferencia es que si tiene una variable de formulario llamada "clave1" que se encuentra tanto en QueryString como en el formulario, Request.Params["key1"] devolverá el valor de QueryString y Request.Params.GetValues("key1") devolverá un matriz de [valor-cadena de consulta, valor-formulario].

Si hay varios valores de formulario o cookies con la misma clave, esos valores se agregarán a la matriz devuelta por GetValues ​​(es decir,GetValues ​​no devolverá una matriz irregular)

La razón fue que el valor que estaba recuperando era de un elemento de formulario, pero el envío se realizó a través de un enlace + JQuery, no a través de un botón de envío de formulario.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top