我有一个主页面有标题和菜单,现在我想要如果我打开login.aspx页面,主页面的菜单应该隐藏,其余标题将保留在那里,意味着主页面是必需的,但没有菜单,什么是最好的解决方案吗?
答案 0 :(得分:0)
您可以执行以下操作。把它放在母版页的代码中。
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Url.AbsoluteUri.Contains("Login.aspx"))
{
//Disable Menu here
}
}
答案 1 :(得分:0)
您可以在母版页中显示或隐藏菜单。
喜欢
public void ShowMenu
{
get { return Menu.Visible; }
get { Menu.Visible = value; }
}
注意:如果菜单是静态的,您可以将其包围在PlaceHolder控件中,并使用此控件管理显示/隐藏它。我选择了这个特定的控件来建议,因为它不会渲染额外的HTML,因此页面中没有任何变化。
然后在登录页面中,说出页面加载或其他内容(不是在初始化或早期时间,已经创建了母版页):
protected void Page_Load(object sender, EventArgs e)
{
var siteMasterPage = Page.Master as SiteMasterPageClassName;
if(siteMasterPage != null) siteMasterPage.ShowMenu = false;
}
<强>更新强>
解决此问题的另一种方法是使用嵌套的母版页。子母版页面包含菜单和其他内容,是所有页面的默认母版页。父母版页面包含甚至适用于登录页面的所有重要内容。
如果您已有母版页,则可以创建另一个母版页,将大多数内容从现有母版页移动到另一个母版页,对内容占位符使用相同的ID,然后使现有母版页本身具有masterpage文件设置为新的,然后应该很容易进入登录页面,并将主页文件名更改为新的主页文件。
答案 2 :(得分:0)
获取菜单控件并将其Visible属性设置为false 警告:这个好处是找到带有硬编码ID的控件,因此它可能会抛出NullReferenceException
Menu menu = Page.Master.FindControl("Menu1");
menu.Visible = false;