Когда Request.Params и Request.Form различаются?
Вопрос
Недавно я столкнулся с проблемой, когда значение было нулевым при доступе с помощью Request.Form, но нормально, если оно было получено с помощью Request.Params.Каковы различия между этими методами, которые могут вызвать это?
Решение
Request.Form включает только переменные, опубликованные через форму, тогда как Request.Params включает как опубликованные переменные формы, так и переменные получения, указанные в качестве параметров URL.
Другие советы
Request.Params содержит комбинацию QueryString, Form, Cookies и ServerVariables (добавленных в указанном порядке).
Разница в том, что если у вас есть переменная формы с именем «key1», которая присутствует как в QueryString, так и в форме, то Request.Params["key1"] вернет значение QueryString, а Request.Params.GetValues("key1") вернет значение массив [значение строки запроса, значение формы].
Если существует несколько значений формы или файлов cookie с одним и тем же ключом, эти значения будут добавлены в массив, возвращаемый GetValues (т.GetValues не вернет неровный массив)
Причина заключалась в том, что значение, которое я получал, было из элемента формы, но отправка была выполнена через ссылку + JQuery, а не через кнопку отправки формы.