如何通过母版页隐藏某些页面上的内容而不隐藏其他页面上的内容?

时间:2012-04-24 17:01:27

标签: asp.net master-pages

阅读此主题,但没有真正回答我的问题,并且有很多建议,所以不确定它们是否在正确的轨道上:Master Page content filtering with respect to asp page

我所拥有的是一个包含1个母版页的网站,其中包含所有网页使用的全局页脚。我想在仅1页(即登录页面)上删除页脚,但保持所有其他母版页内容不变。

我知道我可以为这个登录页面创建一个单独的母版页,但它似乎有些过分。有没有办法设置一些逻辑,如果它只是这个特定的页面,它会隐藏页脚,然后显示在每个其他页面上?

感谢您提供任何建议/建议。

编辑:后面的代码中已经有一个页面加载子。当用户没有登录时,我必须在If语句中添加 - MasterPage_Footer.Visible = False,并在登录时将其设置为True。工作就像一个魅力。感谢您的所有建议。

2 个答案:

答案 0 :(得分:6)

在MasterPage上公开属性,以允许内容页面在需要时覆盖默认行为。

在MasterPage中:

private bool showFooter = true;

public bool ShowFooter { get {return showFooter;} set {showFooter = value;} }

protected void Page_Load(object sender, EventArgs e)
{
    footerControl.Visible = showFooter;
}

确保需要访问该属性的内容页面在aspx中具有以下行:

<%@ MasterType TypeName="XXX" %>

在代码隐藏的内容页面中:

protected void Page_Load(object sender, EventArgs e)
{
    Master.ShowFooter = false;
}

答案 1 :(得分:1)

在您的主页中:

protected void Page_Load(object sender, EventArgs e)
{
   var page = HttpContext.Current.Handler as Page;
   FooterControl.Visible = HttpRequest.IsAuthenticated && !(page is LoginPage)
}