Asp.net 如何通过母版页隐藏某些页面上的内容而不是其他页面上的内容?
阅读此帖子,但没有真正回答我的问题,有很多建议,因此不确定它们是否在正确的轨道上: 我拥有的是一个有1个母版页的站点,其中有一个所有页面都使用的全局页脚。我只想删除1页(即登录页)上的页脚,但保留所有其他母版页内容不变 我知道我可以为这个登录页面创建一个单独的母版页,但这似乎有些过分。有没有一种方法可以把逻辑放进去,如果只是这个特定的页面,它会隐藏页脚,然后在其他页面上显示 谢谢你的建议 编辑:代码隐藏中已存在页面加载子项。当用户未登录时,我只需在If语句中添加-Asp.net 如何通过母版页隐藏某些页面上的内容而不是其他页面上的内容?,asp.net,master-pages,Asp.net,Master Pages,阅读此帖子,但没有真正回答我的问题,有很多建议,因此不确定它们是否在正确的轨道上: 我拥有的是一个有1个母版页的站点,其中有一个所有页面都使用的全局页脚。我只想删除1页(即登录页)上的页脚,但保留所有其他母版页内容不变 我知道我可以为这个登录页面创建一个单独的母版页,但这似乎有些过分。有没有一种方法可以把逻辑放进去,如果只是这个特定的页面,它会隐藏页脚,然后在其他页面上显示 谢谢你的建议 编辑:代码隐藏中已存在页面加载子项。当用户未登录时,我只需在If语句中添加-MasterPage\u Foo
MasterPage\u Footer.Visible=False
,并在用户登录时将其设置为True
。工作起来很有魅力。谢谢你的建议。在你的主页上:
protected void Page_Load(object sender, EventArgs e)
{
var page = HttpContext.Current.Handler as Page;
FooterControl.Visible = HttpRequest.IsAuthenticated && !(page is LoginPage)
}
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" %>
您的页脚与母版页上的其他信息(如
ContentPlaceHolder
)是否位于单独的服务器端控件中?您不能在运行时获取您的页面名吗??然后您可以将css类添加到包含页脚的容器中。。。类似Path.GetFileName(request.PhysicalPath)@jadarnel27是的,页脚位于ContentPlaceHolder
tag@Tim,MasterType创建对母版页类的强类型引用。这对我来说很有效,除了重新加载会导致控件变为null的问题,所以我通过执行null检查,然后添加var newCtl=newfootercontrol()代码>一切都很好
protected void Page_Load(object sender, EventArgs e)
{
Master.ShowFooter = false;
}