Certains peuvent-ils me dire la différence exacte entre Request.Form
et Request.QueryString
?
Je connais une différence, comme
Si la méthode de requête HTTP est POST, les données soumises par l'utilisateur se trouvent dans la collection Request.Form ()
Si la méthode de requête HTTP est GET, les données soumises par l'utilisateur se trouvent dans la collection Request.QueryString ()
toute autre différence? et tout exemple serait grandement apprécié.
Dans Request.Form
les données sont publiées dans le corps de requête http
tandis que dans QueryString
les données sont envoyées via url.
J'ai trouvé une autre différence
Request("id")
va d'abord essayer de localiser
Request.Form("id")
puis
Request.Querystring("id")
puis
Request.Cookies("id")
et enfin
Request.ServerVariables("id")
il est recommandé d'utiliser la convention de dénomination explicite si possible car elle est plus efficace et plus lisible. elle vous permet également d'être sûr d'où proviennent vos informations puisque le système s'arrêtera après le premier hit ... également plus rapide pour le système si vous spécifiez l'emplacement des informations.
et nous pouvons renvoyer ce lien pour plus de détails:
Mais quiconque connaît une autre différence, je l'apprécie vraiment.
Comme indiqué sur MSDN,
( Request.Form ): La valeur de Request.Form (element) est un tableau de toutes les valeurs d'élément qui se produisent dans le corps de la requête. Vous pouvez déterminer le nombre de valeurs d'un paramètre en appelant Request.Form (élément) .Count. Si un paramètre n'a pas plusieurs valeurs qui lui sont associées, le nombre est 1. Si le paramètre n'est pas trouvé, le nombre est 0.
et ( Request.QueryString ): La valeur de Request.QueryString (paramètre) est un tableau de toutes les valeurs de paramètre qui se produisent dans QUERY_STRING. Vous pouvez déterminer le nombre de valeurs d'un paramètre en appelant Request.QueryString (parameter) .Count. Si une variable n'a pas plusieurs ensembles de données qui lui sont associés, le nombre est 1. Si la variable n'est pas trouvée, le nombre est 0.
Donc, certaines choses à noter:
Dans un formulaire typique sur une page, nous pouvons inclure certains éléments cachés:
<form method="post">
<input type="hidden" name="lol" value="cat" />
<input type="text" />
</form>
Les éléments cachés (si la mémoire est utilisée) ne sont pas affichés dans le QueryString
. Donc, je suppose qu'il y a des choses qui n'apparaissent pas dans Request.QueryString
. Malheureusement, je suis en train de réinstaller les applications de développement sur une nouvelle machine et je ne peux pas le tester pour le moment mais si j'ai raison, lorsque vous POST
un formulaire, plus de détails sur le formulaire et son contenu sont expédié. Et lorsque vous accédez à QueryString
, vous ne voyez que les éléments qui composent l'intégralité de l'URL, par exemple:
http://somesite.com/index.html?v=1&NonHiddenElement=lol&ManualValue=hello
Request.Form - signifie que vous souhaitez récupérer les valeurs du formulaire qui a été publié.
Request.QueryString - signifie que vous souhaitez récupérer les valeurs qui ont été transmises sur la chaîne de requête.
Formulaire de demande()
Request.QueryString ()