Request["key"] vs Request.Params["key"] vs Request.QueryString["key"]

你们经验丰富的程序员使用哪种方法?为什么?

推荐答案

我推荐Request.QueryString["key"]个.对于查询字符串来说,Request["Key"]没有太大区别,但是如果您试图从ServerVariables中获取值,则会有很大(呃)区别.Request["Key"]QueryString中查找一个值.如果为空,它将查找Form,然后是Cookie,最后是ServerVariables.

使用Params是最昂贵的.对params的第一个请求创建一个新的NameValueCollection,并将QueryStringFormCookieServerVariables中的每一个添加到此集合中.对于第二个请求,它比Request["Key"]更有效.

尽管如此,几个键的性能差异是可以忽略的.这里的关键是代码应该显示意图,使用Request.QueryString可以清楚地表明您的意图.

Asp.net相关问答推荐

.net 中的 [] 括号是什么?

AppendHeader 是否与 AddHeader 完全相同?

捕获对 ASP.NET ASMX Web 服务的 SOAP 请求

将 ASP.NET 成员资格表添加到我自己的现有数据库中,还是应该配置一个单独的 ASP.NET 成员资格数据库?

获取没有主机的 url 部分

无法让嵌套在 UpdatePanel 中的 WebControl 中的 ScriptManager.RegisterStartupScript 工作

如何检测 ASP.net 应用程序中的 SqlServer 连接泄漏?

Asp.net 中的下拉列表验证使用必填字段验证器

如何找出我的 Windows 域上托管 LDAP 的服务器?

存在 ios 7 虚拟键盘时,div 元素不会停留在底部

在asp.net控件之间动态添加

如何在不预编译的情况下使用命令行msbuild部署VS2012网站项目?

HtmlAgilityPack Select 的子 node 不符合预期

哪个控件导致了回发?

C# - 将图像输出到响应输出流给出 GDI+ 错误

将 html 标记从 jquery 发布调用发送到 asp.net 页面时,从客户端检测到潜在危险的 Request.QueryString 值

asp.net core 2.0 - 值不能为空.参数名称:连接字符串

~/ 等价于 javascript

您可以从 web.config 文件中的其他位置提取 log4net AdoNetAppender 的 connectionString 吗?

IE9 JavaScript 错误:SCRIPT5007:无法获取属性ui的值:对象为空或未定义