ASP.NET:使用Request [“param”]与使用Request.QueryString [“param”]或Request.Form [“param”]

时间:2011-02-09 03:03:13

标签: asp.net request request.querystring request.form

从ASP.NET中的代码隐藏中访问表单或查询字符串值时,使用的优缺点是什么,比如说:

// 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或表单元素以查找数据来源(可能是最重要的一点)

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

2 个答案:

答案 0 :(得分:9)

param集合包括所有(4)个集合:

  1. 查询字符串参数
  2. 表单字段
  3. 缓存
  4. 服务器变量
  5. 你可以辩论,在合并集合中搜索比查找特定集合要慢,但是它可以忽略不计

答案 1 :(得分:4)

长路更好因为:

  • 它更容易(稍后阅读代码时)找到值来自(提高可读性)

  • 略快(虽然这通常不重要,仅适用于首次访问)

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