如何在没有对象的情况下访问Page类的属性(实例)

时间:2013-02-02 07:31:26

标签: c# asp.net .net asp.net-mvc

这可能是一个愚蠢的问题,但我有一个混乱。
每个.aspx页面都会继承System.Web.UI.Page,而Page类会有一些属性,例如IsPostBackIsValidIsCrossPagePostBack以及更多...这些属性我们写Page.IsPostBackIsPostBack
现在,问题是,这些属性是static,如果没有,那么.apsx文件中如何访问它们,我试图用class进行测试但没有成功。

    public class clsDemo:System.Web.UI.Page
    {
    }  

1 个答案:

答案 0 :(得分:1)

Page class派生自TemplateControl class;

public class Page : TemplateControl, IHttpHandler

TemplateControl类派生自抽象Control类;

public abstract class TemplateControl : Control, ...

Control类派生的Page类中,有一个名为Page的虚拟属性;

    // Summary:
    //     Gets a reference to the System.Web.UI.Page instance that contains the server
    //     control.
    //
    public virtual Page Page { get; set; }

Page课程中,有IsPostBackIsValid等属性;

    // Summary:
    //     Gets a value that indicates whether the page is being rendered for the first
    //     time or is being loaded in response to a postback.
    //        
    public bool IsPostBack { get; }

因此,

由于aspx页面派生自Page类,因此它还继承了TemplateControlControl类。在Control类中有一个名为Page的公共属性,因此您可以访问类中的Page属性。 Page类包含IsPostbackIsValid等公共属性,因此您可以使用Page属性中的这些属性。

public class Test : Page
{
    public Test()
    {
        bool test = this.IsCallback;
    }
}