2009-08-08 8 views
0

Ich habe folgendes Ziel:asp.net vermeiden doppelten Code in Header müssen nur andere Seite

Ich habe eine Liste der Top-Menü-Links auf meiner Website

Startseite * Links * Zitate * Fotos

Der einzige Unterschied ist, dass, wenn Sie auf einer bestimmten Seite sind, möchte ich, dass diese Seite nur Text (kein Link) und die anderen Links (um zu zeigen, dass dies die Seite ist, auf der Sie sind):

Ich habe das funktioniert, aber es scheint sehr schlechte Art und Weise zu tun, und ich bin Suche nach einem besseren Weg, dies zu tun:

in meiner Masterseite, habe ich folgend:

<asp:ContentPlaceHolder runat="server" ID="TopMenuLinks"> 
</asp:ContentPlaceHolder> 

In jeder einzelnen separaten Seite, ich den folgenden habe (dies ist der Stammbaum Beispiel):

Stammbaum würde wie folgt aussehen:

<asp:Content ID="Content3" ContentPlaceHolderID="TopMenuLinks" runat="server"> 
<a href="http://xxx/albums.aspx">Photos</a> &nbsp;&nbsp;-&nbsp; 
<a href="http://xxx/globe.aspx">Travel</a> &nbsp;&nbsp;-     
Family Tree 
<a href="http://xxx/wiki.aspx"><spanstyle="color:"#000088">Wiki</span></a>&nbsp;&nbsp;- 
<a href="http://xxx/blog.aspx"><span style="color:"#000088">Baby Blog</span></a> 
</asp:Content> 

Fotos würde wie folgt aussehen:

<asp:Content ID="Content3" ContentPlaceHolderID="TopMenuLinks" runat="server"> 
Photos &nbsp;&nbsp;-&nbsp; 
<a href="http://xxx/globe.aspx">Travel</a> &nbsp;&nbsp;-     
<a href="http://xxx/globe.aspx">Family Tree</a> &nbsp;&nbsp;-     
<a href="http://xxx/wiki.aspx"><spanstyle="color:"#000088">Wiki</span></a>&nbsp;&nbsp;- 
<a href="http://xxx/blog.aspx"><span style="color:"#000088">Baby Blog</span></a> 
</asp:Content> 

Also wie Sie sehen können, habe ich auf jeder Seite im Wesentlichen doppelten Code mit dieser bestimmten Seite nicht als Link.

Gibt es eine sauberere Möglichkeit, dies zu tun, ohne viel Code auf allen meinen Seiten zu duplizieren?

die Art, wie ich bin

Antwort

2

Ich tat das Gleiche mit einer Masterseite, mit ASP: Hyperlink-Steuerelemente. Im Code hinter der Masterseite hatte ich Code, um die NavigateUrl auf eine leere Zeichenfolge festzulegen, wenn die NavigateUrl dem Speicherort der untergeordneten Seite entsprach.

Es ergibt den Effekt, den Sie suchen.

0

ein Benutzersteuerelement für Ihren gemeinsamen Code erstellen und einen Verweis auf jeder Seite hinzufügen. Sie könnten eine Bool-Eigenschaft auf dem Steuerelement verfügbar machen, um Hyperlinks oder einfachen Text darzustellen, und diese Eigenschaft auf jeder Seite nach Bedarf festlegen.

Verwandte Themen