问题描述
我有一个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。 如果我的所有会话页面也都隐藏,但这是因为我的URL包含“会话”一词
有没有添加到上面的方法来寻找我的错误页面的标题。
如果我需要在errorpage.aspx
通过Javascript / jQuery完成此errorpage.aspx
,那也很好。
1楼
在您的errorpage.aspx中,您可能只需添加
<script>
document.getElementById("Sidebar").style.visibility = "hidden";
</script>
或者由于errorpage.aspx很可能是一个特殊页面,与其余页面不同,因此您可以考虑不将MasterPage仅用于该文件。