区分Request.Params、Request.QueryString、Request.Form
https://blog.csdn.net/shiqijiamengjie/article/details/47125125
Request.Params、Request.QueryString、Request.Form都可以获取客户端提交的数据。他们之间有什么不同呢?
Request.Params
既可以获取以GET方式提交的数据,又可以获取以POST方式提交的数据(优先获取GET方式提交的数据)
Request. QueryString
只能获取以GET方式提交的数据
Request.Form
只能获取以POST方式提交的数据
Request.Params其实是一个集合,依次包括request.querystring、request.form、request.servervariables和request.cookies。
Request.Params依次在QueryString、Form、ServerVariable以及Cookies中查找数据,首先在 QueryString 集合查找数据,如果在 QueryString找到数据,就返回数据;反之,就去 Form集合中查找数据,找到就返回,否则再往下一个集合查找数据。
在使用这几种方式获得客户端提交的数据时,如果用错了,编译时不会出现任何错误,但运行的时候就会提示“未将对象引用设置到对象的实例”。所以,如果无法确定提交的数据是什么方式时,建议使用Request或Request.Params获取数据。但是,由于这两种方式需要从集合中一一查找数据,很耗费时间,为了提高效率,减少无谓的搜索时间,同时也是为了程序的规范,建议大家还是用Request.集合的方式更好一点。
凡事都有两面性,学会取舍是关键。
知识拓展:
request对象有五个集合:
QueryString
用以获取客户端附在url地址后的查询字符串中的信息。
例如:stra=Request.QueryString ["strUserld"]
Form
用以获取客户端在FORM表单中所输入的信息。(表单的method属性值需要为POST)
例如:stra=Request.Form["strUserld"]
Cookies
用以获取客户端的Cookie信息。
例如:stra=Request.Cookies["strUserld"]
ServerVariables
用以获取客户端发出的HTTP请求信息中的头信息及服务器端环境变量信息。
例如:stra=Request.ServerVariables["REMOTE_ADDR"],返回客户端IP地址
ClientCertificate
用以获取客户端的身份验证信息
例如:stra=Request.ClientCertificate["VALIDFORM"]