2009-08-08 35 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属性,以呈现超链接或纯文本,并根据需要在每个页面上设置该属性。