Request.Params和Request.Form何时不同?

Mat*_*ell 34 c# asp.net request

我最近遇到一个问题,如果使用Request.Form访问值为null,但如果使用Request.Params检索则很好.这些方法之间有什么区别可能导致这种情况?

Bra*_*ood 29

Request.Form仅包括通过表单发布的变量,而Request.Params包括已发布的表单变量和指定为URL参数的get变量.


Ric*_*lay 21

Request.Params包含QueryString,Form,Cookies和ServerVariables的组合(按此顺序添加).

区别在于,如果在QueryString和Form中都有一个名为"key1"的表单变量,那么Request.Params ["key1"]将返回QueryString值,而Request.Params.GetValues("key1")将返回一个[querystring-value,form-value]的数组.

如果有多个表单值或具有相同键的cookie,则这些值将添加到GetValues返回的数组中(即.GetValues不会返回锯齿状数组)