asp.net избегайте дублирования кода в заголовке, чтобы иметь другую страницу - PullRequest
0 голосов
/ 08 августа 2009

У меня есть следующая цель:

У меня есть список ссылок в главном меню на моем сайте

Главная * Ссылки * Цитаты * Фотографии

Единственное отличие состоит в том, что всякий раз, когда вы находитесь на определенной странице, я хочу, чтобы эта страница была просто текстовой (не ссылка 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 ]

2 голосов
/ 08 августа 2009

Я сделал то же самое, используя главную страницу, используя элементы управления ASP: Hyperlink. В коде на главной странице у меня был код для установки NavigateUrl на пустую строку, если NavigateUrl соответствовал местоположению дочерней страницы.

Получается эффект, который вы ищете.

0 голосов
/ 08 августа 2009

Создайте UserControl для вашего общего кода и добавьте ссылку на каждую страницу. Вы можете предоставить свойство Bool в элементе управления для визуализации гиперссылок или простого текста и установить это свойство по мере необходимости на каждой странице.

...