Request.Params 和 Request.Form 啥时候不同?

Posted

技术标签:

【中文标题】Request.Params 和 Request.Form 啥时候不同?【英文标题】:When do Request.Params and Request.Form differ?Request.Params 和 Request.Form 什么时候不同? 【发布时间】:2010-09-05 13:31:48 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

Request.Params.Keys 中默认的 key 数量为 54 或更多。仅供参考。【参考方案2】:

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

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

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

【讨论】:

我遇到了同样的问题,但您的回答对我帮助很大。我还有一个问题,我们是否可以在单个请求中传递查询字符串值和表单值。实际可行吗?【参考方案3】:

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

【讨论】:

以上是关于Request.Params 和 Request.Form 啥时候不同?的主要内容,如果未能解决你的问题,请参考以下文章

Request,Request.QueryString,Request.Params,Request.Form,Request.ServerVariables之间的区别

AnyCable request.params 在生产中为空

Request.Params

login auth failed errormsg :http request params error啥意思

无法从使用 Azure SAML SSO 配置的本地应用程序中的 C# 中的 Request.Params 获取 SAML 响应

asp.net 后台 Request.Params时遇到前台发送的中文字符 , 得到乱码怎么解决?