0

Web フォーム (.aspx) があり、いくつかのフィールドをページ要求オブジェクトの値で初期化したいと考えています。

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

「静的コンテキストで非静的 'Request' にアクセスできません」というコンパイラ警告が表示されるのはなぜですか? Web フォームのクラスが静的ではありません。

しかし、HttpContext.Current.Request を参照すると、警告はなくなりました。なぜそう行動するのですか?

4

1 に答える 1

1

Request は Page クラスのメンバー プロパティであり、クラスのインスタンスを取得する前にアクセスしようとしています。HttpContext.Current は静的プロパティであり、インスタンスを持たずに静的プロパティにアクセスできます (この場合、Page から継承するクラス Freegitfs)。

また、リクエストの種類を区別するのも良い習慣です。そのため、Request["pu"] の代わりに、Request.QueryString["pu"] または Request.Form["pu"] をお勧めします。

于 2013-06-17T08:38:25.180 に答える