Чем отличаются Request.Params и Request.Form?

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

Ответов (3)

Решение

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

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

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

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

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