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

MGO*_*wen 3 asp.net request request.form request.querystring

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

// short way
string p = Request["param"];
Run Code Online (Sandbox Code Playgroud)

代替:

// long way
string p = Request.QueryString["param"]; // if it's in the query string or
string p = Request.Form["param"];        // for posted form values
Run Code Online (Sandbox Code Playgroud)

我已多次考虑过这个问题了,并提出:

简短的方法:

  • 更短(更易读,更容易记住新手等)

很长的路要走:

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

.

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

Kri*_*nov 9

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

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

你可以辩论,在合并集合中搜索比查看特定集合要慢,但是它可以忽略不计

  • +1唯一的性能差异是第一次访问`Params`时,它需要从其他集合构造.`NameValueCollection`使用`Hashset`来存储值,因此无论大小如何,访问都很快. (3认同)