Pergunta

Recentemente encontrei um problema em que um valor era nulo se acessado com Request.Form, mas bom se recuperado com Request.Params.Quais são as diferenças entre esses métodos que podem causar isso?

Foi útil?

Solução

Request.Form inclui apenas variáveis ​​postadas por meio de um formulário, enquanto Request.Params inclui variáveis ​​de formulário postadas e variáveis ​​get especificadas como parâmetros de URL.

Outras dicas

Request.Params contém uma combinação de QueryString, Form, Cookies e ServerVariables (adicionados nessa ordem).

A diferença é que se você tiver uma variável de formulário chamada "key1" que está tanto no QueryString quanto no Form, então Request.Params["key1"] retornará o valor QueryString e Request.Params.GetValues("key1") retornará um array de [valor de string de consulta, valor de formulário].

Se houver vários valores de formulário ou cookies com a mesma chave, esses valores serão adicionados ao array retornado por GetValues ​​(ou seja,GetValues ​​não retornará uma matriz irregular)

O motivo foi que o valor que eu estava recuperando era de um elemento de formulário, mas o envio foi feito através de um link + JQuery, e não através de um botão de formulário enviar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top