获取母版页内容占位符中的页面名称

Get the name of the page in the content place holder of the Master Page

我的 Master page 由一个包含几个按钮的顶部栏和一个左侧菜单栏组成,用户可以通过该菜单栏在 Web 应用程序中导航。然而,我的 Login.aspx 页面是内容页面,但我不想在内容页面登录时显示左侧菜单栏。

这是我的母版页的一部分:

<div id="body">
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" ShowStartingNode="false" />
    <table class="auto-style1">
        <tr>
            <td class="auto-style2" style="vertical-align: top">
                <div id="leftmenu">
                    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource1" StaticDisplayLevels="2" Font-Size="Medium">
                        <LevelSubMenuStyles>
                            <asp:SubMenuStyle CssClass="level1" />
                        </LevelSubMenuStyles>
                        <StaticHoverStyle CssClass="hoverstyle" />
                    </asp:Menu>
                </div>
            </td>
            <td>
                <asp:ContentPlaceHolder runat="server" ID="MainContent" />
                <br />
            </td>
        </tr>
    </table>
    <section class="content-wrapper main-content clear-fix">
         
    </section>
</div>

我正在寻找一种方法来检查我的母版页文件 MainContent 中打开的页面的名称,如果该页面是 Login.aspx 我会设置 Menu1 隐藏。

您必须以相反的方式思考:从内容页访问母版页的控件。

此指令导致内容页面的母版 属性 为强类型。在您的内容页面中添加:

<%@ MasterType virtualpath="~/YourMasterPage.master" %>

在母版页中创建以下 属性:

public bool IsMenuVisible
{
    get
    {
        return Menu1.Visible;
    }
    set
    {
        Menu1.Visible = value;
    }
}

在您的内容页面中使用它:

Master.IsMenuVisible = false;

更多信息:

Reference ASP.NET Master Page Content