0

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

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

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

但如果我参考 HttpContext.Current.Request 警告就消失了。为什么会有这样的行为?

4

1 回答 1

1

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

区分请求类型也是一个好习惯,所以我建议不要使用 Request["pu"] 或 Request.QueryString["pu"] 或 Request.Form["pu"]

于 2013-06-17T08:38:25.180 回答