2011-02-09 56 views
3

当从ASP.NET中的代码隐藏中访问表单或查询字符串值时,什么是使用的利弊,说:ASP.NET:使用Request [“param”]与使用Request.QueryString [“param”]或Request.Form [“param”]

// short way 
string p = Request["param"]; 

代替:

// long way 
string p = Request.QueryString["param"]; // if it's in the query string or 
string p = Request.Form["param"];  // for posted form values 

我想过很多次,并拿出:

短道:

  • 较短(更易读,便于新手要记住,等)

长征路:

  • 没有问题,如果有与同一个表单值和查询字符串值名称(虽然通常不是问题)
  • 稍后有人阅读代码知道是否查看URL或表单元素以查找数据源(可能是最重要的一点)

那么,每种方法还有哪些其他优点/缺点?

回答

4

长的方式,更因为:

  • 这使得它更容易(后来读码时)找到当值从来(提高可读性)

  • 这是稍快(虽然这通常不重要,只适用于第一次访问)

在ASP.NET(以及PHP中的等价概念)中,我总是使用你称之为“长形式”的东西。我是这样做的,我想从我的输入值的来源确切地知道原则,以便我确保他们以我期望的方式得到我的应用程序。所以,这是为了输入验证和安全性,我更喜欢更长的路。另外,正如你所建议的那样,我认为可维护性值得一些额外的击键。

9

帕拉姆收集包括所有(4)类别:

  1. 查询字符串参数
  2. 表单域
  3. 饼干
  4. 服务器变量

你可以辩论说搜索在合并后的收藏中比查找特定的要慢,但是可以忽略不计差异

+3

+1唯一的性能差异是第一次访问`Params`时,它需要从其他集合构建。 `NameValueCollection`使用`Hashset`来存储值,所以无论大小如何,访问都很快。 – Vadim 2011-02-09 03:25:39