Request.Params 和 Request.Form 何时不同?
题
我最近遇到一个问题,如果使用 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 完成的,而不是通过表单按钮提交。
不隶属于 StackOverflow