When do Request.Params and Request.Form differ?

26,298

Solution 1

Request.Form only includes variables posted through a form, while Request.Params includes both posted form variables and get variables specified as URL parameters.

Solution 2

Request.Params contains a combination of QueryString, Form, Cookies and ServerVariables (added in that order).

The difference is that if you have a form variable called "key1" that is in both the QueryString and Form then Request.Params["key1"] will return the QueryString value and Request.Params.GetValues("key1") will return an array of [querystring-value, form-value].

If there are multiple form values or cookies with the same key then those values will be added to the array returned by GetValues (ie. GetValues will not return a jagged array)

Solution 3

The reason was that the value I was retrieving was from a form element, but the submit was done through a link + JQuery, not through a form button submit.

Share:
26,298
Matt Mitchell
Author by

Matt Mitchell

You can email me at [email protected]. I also keep a technical log at http://MattMitchell.com.au/Technical

Updated on December 22, 2020

Comments

  • Matt Mitchell
    Matt Mitchell over 3 years

    I recently encountered a problem where a value was null if accessed with Request.Form but fine if retrieved with Request.Params. What are the differences between these methods that could cause this?

  • Kumaran T
    Kumaran T almost 13 years
    i had a same problem but your answer help me a lot. i have an another question whether we can pass query string-vale and Form-value in single request. is it practically possible?
  • shalin gajjar
    shalin gajjar about 10 years
    How much no of key are default in Request.Params.Keys are 54 or much of them. Just FYI.