asp.net – MasterPage是否知道正在显示的页面?

前端之家收集整理的这篇文章主要介绍了asp.net – MasterPage是否知道正在显示的页面?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我在使用MasterPages的网站上导航时,应用程序是否知道我在哪个页面?如果是这样,它是否存储在我可以访问的对象中?

我问的原因是我可以替换这个:

//masterpage 
<div id="nav_main">
   <ul><asp:ContentPlaceHolder ID="navigation" runat="server">                    
   </asp:ContentPlaceHolder></ul>
</div>

//content page(s)
<asp:Content ContentPlaceHolderID="navigation" ID="theNav" runat="server">
   <li><a href="default.aspx">Home</a></li>
   <li id="current"><a href="faq.aspx">FAQ</a></li>
   <li><a href="videos.aspx">Videos</a></li>
   <li><a href="#">Button 4</a></li>
   <li><a href="#">Button 5</a></li>
</asp:Content>

使用更优雅的导航解决方案,通过将列表项的ID设置为“当前”来突出显示页面链接.目前,每个页面都会重新创建导航,并将其相应链接的ID设置为当前.

解决方法

我同意克里斯:使用一个控件来处理这个菜单显示,并让它知道应突出显示链接.这是我经常使用的方法.如果您有多个页面需要相同的链接样式,可能会变得更加复杂,但您明白了.
Dim thisURL As String = Request.Url.Segments(Request.Url.Segments.Count - 1)
Select Cast thisUrl
   Case "MenuItem1.aspx"
       lnkMenu1.CssClass = "Current"
   Case "MenuItem2.aspx"
       lnkMenu2.CssClass = "Current"
End Select

猜你在找的asp.Net相关文章