这可能是一个愚蠢的问题,但我有一个混乱。
每个.aspx
页面都会继承System.Web.UI.Page
,而Page类会有一些属性,例如IsPostBack
,IsValid
,IsCrossPagePostBack
以及更多...这些属性我们写Page.IsPostBack
或IsPostBack
。
现在,问题是,这些属性是static
,如果没有,那么.apsx
文件中如何访问它们,我试图用class
进行测试但没有成功。
public class clsDemo:System.Web.UI.Page
{
}
答案 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
课程中,有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
类,因此它还继承了TemplateControl
和Control
类。在Control
类中有一个名为Page
的公共属性,因此您可以访问类中的Page
属性。 Page
类包含IsPostback
和IsValid
等公共属性,因此您可以使用Page
属性中的这些属性。
public class Test : Page
{
public Test()
{
bool test = this.IsCallback;
}
}