34

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

4

3 回答 3

31

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

于 2008-08-08T05:51:54.420 回答
21

Request.Params 包含 QueryString、Form、Cookie 和 ServerVariables(按该顺序添加)的组合。

不同之处在于,如果您在 QueryString 和 Form 中都有一个名为“key1”的表单变量,那么 Request.Params["key1"] 将返回 QueryString 值,Request.Params.GetValues("key1") 将返回一个[querystring-value, form-value] 的数组。

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

于 2008-08-29T10:57:21.823 回答
1

原因是我检索的值来自表单元素,但提交是通过链接 + JQuery 完成的,而不是通过表单按钮提交。

于 2008-08-08T05:42:03.847 回答