<p>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?</p>

[{'answer_id': 5707, 'author': 'Matt Mitchell', 'author_id': 364, 'author_profile': 'https://Stackoverflow.com/users/364', 'pm_score': 1, 'selected': False, 'text': '<p>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.</p>\n'}, {'answer_id': 5709, 'author': 'Brandon Wood', 'author_id': 423, 'author_profile': 'https://Stackoverflow.com/users/423', 'pm_score': 6, 'selected': True, 'text': '<p>Request.Form only includes variables posted through a form, while Request.Params includes both posted form variables and get variables specified as URL parameters.</p>\n'}, {'answer_id': 34359, 'author': 'Richard Szalay', 'author_id': 3603, 'author_profile': 'https://Stackoverflow.com/users/3603', 'pm_score': 4, 'selected': False, 'text': '<p>Request.Params contains a combination of QueryString, Form, Cookies and ServerVariables (added in that order).</p>\n\n<p>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].</p>\n\n<p>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)</p>\n'}]
['https://Stackoverflow.com/questions/5706', 'https://Stackoverflow.com', 'https://Stackoverflow.com/users/364/']