请求与Request.Params 对比Request.QueryString
 Request["key"]与Request.Params["key"]对比Request.QueryString["key"] 
你经验丰富的程序员使用哪种方法? 为什么?
 我build议Request.QueryString["key"] 。  Request["Key"]与查询string没有多大区别,但是如果您尝试从ServerVariables获取值,则ServerVariables 。  Request["Key"]在QueryString查找一个值,如果为null,则查看Form ,然后是Cookie ,最后是ServerVariables 。 
 使用Params是最昂贵的。  params的第一个请求创build一个新的NameValueCollection ,并将QueryString , Form , Cookie和ServerVariables每一个添加到这个集合中。 对于第二个请求比Request["Key"]更高性能。 
 说了几个键的性能差异是相当可以忽略的。 这里的关键是代码应该显示意图,并使用Request.QueryString明确你的意图是什么。 
 我更喜欢使用Request.QueryString["key"]因为它有助于代码阅读器确切地知道从哪里获取数据。 我倾向于不使用Request.Params["key"]因为它可以引用cookie,查询string和其他一些东西; 所以用户不得不想一点。 人们需要花费更less的时间来弄清楚你在想什么,维护代码就越容易。 
  HttpRequest.Params或Request.Params从httprequest获取几乎所有的东西(查询string,表单,cookie和会话variables),而Request.Querystring只能提取查询string…所有这一切都取决于你在做什么。 
我总是明确指定收集。 如果由于某种原因,你想允许覆盖,编码为每个“获取”,并写一些清晰的代码,显示您的层次结构select一个在另一个。 海事组织,我不喜欢从多个来源获得价值,没有明确的商业原因这样做。
如果您在web.config中设置requestValidationMode =“4.5” , Request.QueryString [“key”]和Request [“key”]将使用“延迟加载”行为作为devise。
但是,不知何故, Request.Params [“key”]仍然会触发validation为4.0的行为。
这种奇怪的行为真的使我困惑很久。
- 从Web.Config读取variables
- 由UpdatePanel中的GridView内部的LinkButton触发完全回发
- 使用Active Directory的.NET中的用户组和angular色pipe理
- 如何在ASP.NET中获取客户端date和时间?
- 如何lockingASP.NET MVC中的path?
- ASP.NET MVC – 设置自定义IIdentity或IPrincipal
- 如何使用SqlConnectionStringBuilder从连接string获取数据库名称
- 确认回传OnClientClickbuttonASP.NET
- 使用<optgroup>为asp.net(webforms)的下拉列表控件?