Question

J'ai récemment rencontré un problème où une valeur était nulle si elle était accessible avec Request.Form mais bien si elle était récupérée avec Request.Params.Quelles sont les différences entre ces méthodes qui pourraient provoquer ce problème ?

Était-ce utile?

La solution

Request.Form inclut uniquement les variables publiées via un formulaire, tandis que Request.Params inclut à la fois les variables de formulaire publiées et les variables d'obtention spécifiées comme paramètres d'URL.

Autres conseils

Request.Params contient une combinaison de QueryString, Form, Cookies et ServerVariables (ajoutés dans cet ordre).

La différence est que si vous avez une variable de formulaire appelée "key1" qui se trouve à la fois dans QueryString et Form, alors Request.Params["key1"] renverra la valeur QueryString et Request.Params.GetValues("key1") renverra un tableau de [valeur de chaîne de requête, valeur de formulaire].

S'il existe plusieurs valeurs de formulaire ou cookies avec la même clé, ces valeurs seront ajoutées au tableau renvoyé par GetValues ​​(c'est-à-dire.GetValues ​​ne renverra pas un tableau irrégulier)

La raison était que la valeur que je récupérais provenait d'un élément de formulaire, mais la soumission a été effectuée via un lien + JQuery, et non via un bouton de soumission de formulaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top