【问题标题】:ASP.Net - Hide Sub Menu On Error PageASP.Net - 在错误页面上隐藏子菜单
【发布时间】:2015-08-07 13:09:37
【问题描述】:

我有一个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;
    }
}

我的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 是我的主页或默认隐藏。它也会隐藏我所有的会话页面,但这是因为我的 URL 包含单词“会话”

有没有办法添加到上面来寻找我的错误页面的标题。

如果我需要通过 errorpage.aspx 中的 Javascript/jQuery 来完成,那也可以。

【问题讨论】:

    标签: javascript c# jquery asp.net webforms


    【解决方案1】:

    在您的 errorpage.aspx 中,您可能只需添加

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

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

    【讨论】:

    • 我刚刚记得的问题是在我的Site.Master 文件中我有一个if 声明&lt;% if (Sidebar.Visible == false){ %&gt; &lt;div&gt; &lt;%} else { %&gt; &lt;div class="col-xs-12 col-sm-9" style="padding-right: 0px"&gt; &lt;%} %&gt; &lt;asp:ContentPlaceHolder ID="MainContent" runat="server"&gt;&lt;/asp:ContentPlaceHolder&gt; &lt;/div&gt; 所以我还需要找到一种方法来覆盖它
    • Site.Master 文件应该用于在整个页面中始终保持相同的内容。我会将&lt;div&gt; 标记移动到&lt;asp:content&gt; 部分,因为无论如何您都是在每页的基础上选择这些div。或者您不能只为 errorpage.aspx 使用您的 Site.Master 文件,而不必担心。
    猜你喜欢
    • 2015-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多