无法在静态上下文中访问非静态“请求”

时间:2013-06-17 08:32:05

标签: asp.net request

我有一个网页表单(.aspx),我想用页面请求对象中的值初始化一些字段。

 public partial class Freegitfs : System.Web.UI.Page
    {
        String _purchasebleUnitKey = Request["pu"] ?? String.Empty;
        ...

我收到编译器警告'无法在静态上下文中访问非静态'请求' 为什么?我的网络表格不是静态的。

但是,如果我向HttpContext.Current.Request求助,警告就消失了。 为什么这么做?

1 个答案:

答案 0 :(得分:1)

Request是Page类的成员属性,您在尝试使用该类的实例之前尝试访问它。 HttpContext.Current是静态属性,可以在没有实例的情况下访问静态属性(在你的情况下是Freegitfs类,它继承自Page)。

同样区分请求类型也是一个好习惯,所以我建议Request.QueryString [“pu”]或Request.Form [“pu”]而不是Request [“pu”]