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

有帮助吗?

解决方案

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

其他提示

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

区别在于,如果您有一个名为“key1”的表单变量,该变量同时存在于 QueryString 和 Form 中,则 Request.Params["key1"] 将返回 QueryString 值,而 Request.Params.GetValues("key1") 将返回[查询字符串值,表单值] 的数组。

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top