我有以下目标:
我在我的网站上有一个顶级菜单链接列表
主页*链接*报价*照片
唯一的区别是,无论何时您在特定页面上,我希望该页面只是文本(不是href链接)而其他页面是链接(以显示这是您所在的页面):< / p>
我得到了这个工作,但这似乎非常糟糕的做法,我正在寻找一个更好的方法:
在我的母版页中,我有以下内容:
<asp:ContentPlaceHolder runat="server" ID="TopMenuLinks">
</asp:ContentPlaceHolder>
在每个单独的页面中,我有以下内容(这是Family Tree Example):
Family Tree看起来像这样:
<asp:Content ID="Content3" ContentPlaceHolderID="TopMenuLinks" runat="server">
<a href="http://xxx/albums.aspx">Photos</a> -
<a href="http://xxx/globe.aspx">Travel</a> -
Family Tree
<a href="http://xxx/wiki.aspx"><spanstyle="color:"#000088">Wiki</span></a> -
<a href="http://xxx/blog.aspx"><span style="color:"#000088">Baby Blog</span></a>
</asp:Content>
照片看起来像这样:
<asp:Content ID="Content3" ContentPlaceHolderID="TopMenuLinks" runat="server">
Photos -
<a href="http://xxx/globe.aspx">Travel</a> -
<a href="http://xxx/globe.aspx">Family Tree</a> -
<a href="http://xxx/wiki.aspx"><spanstyle="color:"#000088">Wiki</span></a> -
<a href="http://xxx/blog.aspx"><span style="color:"#000088">Baby Blog</span></a>
</asp:Content>
正如您所看到的,在每个页面中,我基本上都有重复的代码,该特定页面不作为链接。
有没有更简洁的方法可以做到这一点,而不会在我的每个页面上复制大量的代码?
我的方式
答案 0 :(得分:2)
我使用ASP:Hyperlink控件使用母版页做了同样的事情。在母版页背后的代码中,如果NavigateUrl与子页面的位置匹配,我有代码将NavigateUrl设置为空字符串。
它会产生您正在寻找的效果。
答案 1 :(得分:0)
为公共代码创建UserControl并添加对每个页面的引用。您可以在控件上公开Bool属性,以呈现超链接或纯文本,并在每个页面上根据需要设置该属性。