2

这可能是一个愚蠢的问题,但我有一个困惑。
每个.aspx页面都继承 System.Web.UI.Page,并且Page类具有一些属性,IsPostBack例如IsValid,、、IsCrossPagePostBack等等……来访问我们编写的这些属性Page.IsPostBackIsPostBack
现在,问题是,这些属性static是否存在,如果不是,那么如何在.apsx文件中访问这些属性,我尝试使用 a 进行测试class但未成功。

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

1 回答 1

1

页面类派生自TemplateControl类;

public class Page : TemplateControl, IHttpHandler

TemplateControl派生自抽象Control类;

public abstract class TemplateControl : Control, ...

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

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

Page类中有诸如IsPostBack等属性IsValid

    // 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类中有一个名为 as 的公共属性,Page因此您可以访问Page类中的属性。并且Page类具有诸如等之类的公共属性IsPostbackIsValid因此您可以从属性中使用这些属性Page

public class Test : Page
{
    public Test()
    {
        bool test = this.IsCallback;
    }
}
于 2013-02-02T07:53:02.750 回答