【发布时间】:2009-10-21 18:04:29
【问题描述】:
我有几个从 BasePage 继承并使用母版页的内容页面。
从 BasePage.cs 文件中,我需要调用母版页中定义的方法。
我该怎么做?
【问题讨论】:
标签: asp.net master-pages
我有几个从 BasePage 继承并使用母版页的内容页面。
从 BasePage.cs 文件中,我需要调用母版页中定义的方法。
我该怎么做?
【问题讨论】:
标签: asp.net master-pages
应该这样做:
var masterPage = ((MasterPageType)Master);
or to access the function:
((MasterPageType)Master).SomeFunction();
您可能还必须以编程方式在基本页面中设置母版页文件。我们在 OnPreInit 函数中执行此操作。
this.MasterPageFile = "~/masterPage.master";
【讨论】:
你可以使用
Page.Master
您可以将该属性转换为您的特定母版页类型。
【讨论】:
您可以使用Strongly Typed Master Pages。另请参阅here。
【讨论】:
假设您在下面给出了一个属性来启用母版页中的标题:
母版页代码:
Public Property EnablePageHeader() As Boolean
Get
If ViewState("EnablePageHeader") Is Nothing Then
ViewState("EnablePageHeader") = True
End If
Return DirectCast(ViewState("EnablePageHeader"), Boolean)
End Get
Set(ByVal value As Boolean)
ViewState("EnablePageHeader") = value
End Set
End Property
现在,如果您想从任何其他基类或任何其他页面调用此属性,那么您可以编写如下代码:
DirectCast(Master, DefaultMaster).EnablePageHeader = False
希望Methods也是如此。
如果上面的代码对你有帮助,如果有任何错误,请回复。
谢谢,
【讨论】: