2009-08-08 34 views
0

我有以下目標:asp.net避免重複的代碼只是有不同的頁面

我有我的網站的頂部菜單鏈接列表

首頁*鏈接* *報價圖片

唯一的區別在於,無論何時您在特定頁面上,我都希望該頁面只是文本(而不是href鏈接),其他頁面是鏈接(以顯示這是您所在的頁面):

我得到了這個工作,但它似乎很糟糕的做法,我是尋找這樣做的更好的方法:在我的母版頁

,我有以下幾點:

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

在每個個體單獨的頁面,我有以下的(這是家譜例):

家譜是這樣的:

<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> 

照片應該是這樣的:

<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> 

所以,你可以看到,在每一頁我基本上有重複的代碼與該特定頁面而不是鏈接。

有沒有更乾淨的方式做到這一點,而不需要在我的每個人的網頁上覆制大量的代碼?

的方式我很

回答

2

我用母版頁做了同樣的事情,使用ASP:超鏈接控件。在母版頁後面的代碼中,如果NavigateUrl與子頁面的位置匹配,我有代碼將NavigateUrl設置爲空字符串。

它會導致您正在尋找的效果。

0

爲常見的代碼創建一個用戶控件並添加引用到每一頁。您可以在控件上公開一個Bool屬性,以呈現超鏈接或純文本,並根據需要在每個頁面上設置該屬性。