ASP.在错误页面上隐藏子菜单

本文关键字:隐藏 菜单 错误 ASP | 更新日期: 2023-09-27 18:06:47

我有一个asp.net网站,在某些页面上我有一个子菜单显示和其他我没有。现在的事情是,我想隐藏我的子菜单在我的自定义错误页面。

当我击中我的自定义错误页面,我的URL不改变(例如用户输入一个无效的URL),正因为如此,我需要以某种方式寻找标题或我的页面上的东西来隐藏它或不,我不能弄清楚。

代码在我的Site.Master.cs隐藏子菜单:

protected void Page_Load(object sender, EventArgs e)
{
    var URL = Request.Url.PathAndQuery;
    if (URL == "/Default" || URL == "/default.aspx" || Request.Url.ToString().Contains("Session") || Request.RequestContext.ToString().Contains("Page"))
    {
        this.Sidebar.Visible = false;
    }
}

HTML在我的Site.Master.cs文件的子菜单:

<div ID="Sidebar" runat="server" class="col-sm-3 hidden-xs" style="padding-left: 0px">
     <ul class="nav nav-stacked">
          <li><a runat="server" href="~/">Home</a></li>
          <li><a runat="server" href="~/About">About us</a></li>
               <ul class="nav nav-stackedsub">
                    <li><a runat="server" href="~/testpage">test1</a></li>
                    <li><a runat="server" href="~/EmailPg">test2</a></li>
               </ul>
          <li><a runat="server" href="~/Session/pg1">Session</a></li>
          <li><a runat="server" href="~/EmailPg">Email</a></li>
     </ul>
</div>

看上面,URL是我的主页或默认它隐藏。它还隐藏了我所有的会话页面,但这是因为我的URL包含单词' session '

是否有办法添加到上面,也寻找我的错误页的标题。

如果我需要通过Javascript/jQuery在errorpage.aspx,那么这也很好。

ASP.在错误页面上隐藏子菜单

在你的errorpage。Aspx,你可以直接添加

<script>
    document.getElementById("Sidebar").style.visibility = "hidden";
</script>

或者从errorpage开始。aspx很可能是一个特殊的页面,而不是你的其他页面,你可以考虑不使用MasterPage仅为该文件