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

Asp.net 如何通过母版页隐藏某些页面上的内容而不是其他页面上的内容?,asp.net,master-pages,Asp.net,Master Pages,阅读此帖子,但没有真正回答我的问题,有很多建议,因此不确定它们是否在正确的轨道上: 我拥有的是一个有1个母版页的站点,其中有一个所有页面都使用的全局页脚。我只想删除1页(即登录页)上的页脚,但保留所有其他母版页内容不变 我知道我可以为这个登录页面创建一个单独的母版页,但这似乎有些过分。有没有一种方法可以把逻辑放进去,如果只是这个特定的页面,它会隐藏页脚,然后在其他页面上显示 谢谢你的建议 编辑:代码隐藏中已存在页面加载子项。当用户未登录时,我只需在If语句中添加-MasterPage\u Foo

阅读此帖子,但没有真正回答我的问题,有很多建议,因此不确定它们是否在正确的轨道上:

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

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

谢谢你的建议

编辑:代码隐藏中已存在页面加载子项。当用户未登录时,我只需在If语句中添加-
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;
}