Asp.net中HttpRequest.Params与Reques.Item之异同

  今天才注意到HttpRequest.Params与HttpRequest.Item这两个玩意竟然有微妙的不同。上午的时候同事被坑了发现这玩意的说明还真微妙。

  场景再现:

  前台提交一个POST请求到后台,此时post的url中带有参数ID,而表单数据刚好也有一个ID域。由于之前代码编写的时候都采用Request["id"],故而也一切正常——直到今天他写成了Request.Params["id"]……

  结果如下:

  

  按照MSDN的说法,HttpRequest.Item是从 QueryStringFormCookies 或 ServerVariables 集合获取指定的对象。而相对的,HttpRequest.Params是获取 QueryStringFormCookies 和 ServerVariables 项的组合集合。一个或一个和,MS的语文果然不是体育老师教的。于是HttpRequest.Item找到第一个ID后就直接返回了,而HttpRequest.Params将所有的ID都取了出来。看来不顺手婊下MS是不行了……

  

原文地址:https://www.cnblogs.com/Nyarlathotep/p/3680402.html