阅读此主题,但没有真正回答我的问题,并且有很多建议,所以不确定它们是否在正确的轨道上:Master Page content filtering with respect to asp page
我所拥有的是一个包含1个母版页的网站,其中包含所有网页使用的全局页脚。我想在仅1页(即登录页面)上删除页脚,但保持所有其他母版页内容不变。
我知道我可以为这个登录页面创建一个单独的母版页,但它似乎有些过分。有没有办法设置一些逻辑,如果它只是这个特定的页面,它会隐藏页脚,然后显示在每个其他页面上?
感谢您提供任何建议/建议。
编辑:后面的代码中已经有一个页面加载子。当用户没有登录时,我必须在If语句中添加 - MasterPage_Footer.Visible = False
,并在登录时将其设置为True
。工作就像一个魅力。感谢您的所有建议。
答案 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)
}