Request.Item和Request.Params

本文深入探讨了.NET Framework中HttpRequest对象的Item属性和Params属性的使用方式,包括它们如何从QueryString、Form、Cookies和ServerVariables中获取数据,以及在实际应用中的区别和适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


Request.Item

定义:

从 QueryString、Form、Cookies 或 ServerVariables 集合获取指定的对象

语法: 

public string this[
	string key
] { get; }

 

Request.Params

定义:

获取 QueryString、Form、Cookies 和 ServerVariables 项的组合集合

语法:

public NameValueCollection Params { get; }


Reqeust["key"]或Request.Params["key"]

两者都是以指定key搜索Request.QueryString、Request.Form、Request.Cookies 和 Request.ServerVariables这4个集合,这让我们可以以方便的形式访问参数值,而不必去区分它来自GET还是POST

注:QueryString、Form、ServerVariables是NameValueCollection类型的,允许同名key,即一个键下存储多个字符串值,Cookies的HttpCookieCollection类型的,其基类是NameObjectCollectionBase,不允许同名key

不同的地方在于Item是依次访问4个集,找到就返回结果,而Params是在访问时,先将4个集合的数据合并到一个新集合(集合不存在时创建),然后再查找指定的结果。这至少意味两点,一是开销,Params会创建新的合并集合,二是存在跨集合的同名key的情况下(比如QueryString和Form有相同名称的key),Reqeust["key"]和Request.Params["key"]的返回结果会不同

至于Request[]、Request.Params[]该用哪一个,仁者见仁,智者见智了

 

HttpRequest.Item 属性
http://msdn.microsoft.com/zh-cn/library/system.web.httprequest.item(v=vs.110).aspx

HttpRequest.Params 属性
http://msdn.microsoft.com/zh-cn/library/system.web.httprequest.params(v=vs.100).aspx

NameValueCollection 类
http://msdn.microsoft.com/zh-cn/library/system.collections.specialized.namevaluecollection.aspx

细说 Request[]与Request.Params[]
http://www.cnblogs.com/fish-li/archive/2011/12/06/2278463.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值