Когда Request.Params и Request.Form отличаются? - PullRequest
31 голосов
/ 08 августа 2008

Недавно я столкнулся с проблемой, когда значение было нулевым, если к нему обращались с помощью Request.Form, но прекрасно, если получалось с помощью Request.Params. Каковы различия между этими методами, которые могут вызвать это?

Ответы [ 3 ]

28 голосов
/ 08 августа 2008

Request.Form включает в себя только переменные, опубликованные через форму, в то время как Request.Params включает как опубликованные переменные формы, так и переменные, указанные в качестве параметров URL.

21 голосов
/ 29 августа 2008

Request.Params содержит комбинацию QueryString, Form, Cookies и ServerVariables (добавляются в этом порядке).

Разница в том, что если у вас есть переменная формы с именем "key1", которая есть и в QueryString, и в форме, то Request.Params ["key1"] вернет значение QueryString и Request.Params.GetValues ​​("key1") вернет массив [querystring-value, form-value].

Если существует несколько значений формы или файлов cookie с одним и тем же ключом, эти значения будут добавлены в массив, возвращаемый GetValues ​​(т. Е. GetValues ​​не будет возвращать зубчатый массив)

1 голос
/ 08 августа 2008

Причина была в том, что полученное мной значение было от элемента формы, но отправка осуществлялась через ссылку + JQuery, а не через кнопку отправки формы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...