【问题标题】:Get reference to the Master Page from the base class of content pages从内容页面的基类获取对母版页的引用
【发布时间】:2009-10-21 18:04:29
【问题描述】:

我有几个从 BasePage 继承并使用母版页的内容页面。

从 BasePage.cs 文件中,我需要调用母版页中定义的方法。

我该怎么做?

【问题讨论】:

    标签: asp.net master-pages


    【解决方案1】:

    应该这样做:

        var masterPage = ((MasterPageType)Master);
    or to access the function:
        ((MasterPageType)Master).SomeFunction();
    

    您可能还必须以编程方式在基本页面中设置母版页文件。我们在 OnPreInit 函数中执行此操作。

    this.MasterPageFile = "~/masterPage.master";
    

    【讨论】:

    • 内容页面具有以下内容: 它们没有设置 TypeName 属性。我想我必须这样做?
    【解决方案2】:

    你可以使用

    Page.Master
    

    您可以将该属性转换为您的特定母版页类型。

    【讨论】:

      【解决方案3】:

      您可以使用Strongly Typed Master Pages。另请参阅here

      【讨论】:

        【解决方案4】:

        假设您在下面给出了一个属性来启用母版页中的标题:

        母版页代码:

        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也是如此。

        如果上面的代码对你有帮助,如果有任何错误,请回复。

        谢谢,

        【讨论】:

        • DefaultMaster 是 TypeName 的值吗?如果是这样,请参阅我之前对凯文的评论。
        猜你喜欢
        • 2012-06-24
        • 1970-01-01
        • 1970-01-01
        • 2015-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多