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

时间:2015-01-04 09:23:24

标签: c# asp.net

我的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">
        &nbsp;
    </section>
</div>

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

1 个答案:

答案 0 :(得分:1)

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

此指令导致内容页面的Master属性被强类型化。在您的内容页面中添加:

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

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

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

在内容页面中使用它:

Master.IsMenuVisible = false;

更多信息:

Reference ASP.NET Master Page Content