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

时间:2015-08-07 13:09:38

标签: javascript c# jquery asp.net webforms

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

当我点击我的自定义错误页面时,我的URL不会更改(例如,用户输入了无效的URL),因此我需要以某种方式查找页面上的标题或其他内容以隐藏它,我可以&# 39;弄清楚。

我的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;
    }
}

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

<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是我的主页或默认隐藏。它也会隐藏在我的所有会话页面中,但这是因为我的网址包含“&#39;会话&#39;

是否可以添加到上面的内容中以查找错误页面的标题。

如果我需要通过errorpage.aspx中的Javascript / jQuery来完成,那么这也很好。

1 个答案:

答案 0 :(得分:1)

在你的errorpage.aspx中,你可以添加

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

或者,因为errorpage.aspx很可能是一个与其他页面不同的特殊页面,所以您可以考虑不将MasterPage用于该文件。