2

阅读此线程,但并没有真正回答我的问题,并且有很多建议,所以不确定它们是否在正确的轨道上: 关于 asp 页面的母版页内容过滤

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

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

感谢您的任何提示/建议。

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

4

2 回答 2

7

在 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;
}
于 2012-04-24T17:14:12.413 回答
1

In your MasterPage:

protected void Page_Load(object sender, EventArgs e)
{
   var page = HttpContext.Current.Handler as Page;
   FooterControl.Visible = HttpRequest.IsAuthenticated && !(page is LoginPage)
}
于 2012-04-24T17:09:54.693 回答