Как мне дважды разместить заполнитель на главной странице? - PullRequest
3 голосов
/ 03 ноября 2011

У меня есть главная страница, и я хочу добавить местозаполнитель дважды - чтобы у меня была одна и та же метка-заполнитель в двух местах главной страницы, чтобы реальная страница просто указывала содержимое местозаполнителя один раз, и этот контент визуализируется дважды на Итоговая страница. Цель состоит в том, чтобы избежать дублирования контента.

Если я попытаюсь добавить заполнитель с одним и тем же идентификатором дважды, он не скомпилируется - ASP.NET это не понравится.

Как мне этого добиться? Какие есть другие варианты?

Ответы [ 3 ]

2 голосов
/ 18 сентября 2016

Поместите местозаполнитель в Action и при необходимости вызовите его.

<%
    Action myPlaceholder = () =>
    {%>
        <asp:ContentPlaceHolder ID="X" runat="server" />
    <%}
%>

... затем вызовите, где необходимо, код.

<% if (conditionMet)
    myPlaceholder(); >%

Ошибка возникает привремя компиляции: будет подана жалоба, если заполнители с таким же идентификатором существуют.Такой подход устраняет это препятствие и дает большую гибкость.

1 голос
/ 03 ноября 2011

Я думаю, что вы, вероятно, ищете пользовательский элемент управления:

http://msdn.microsoft.com/en-us/library/y6wb1a0e.aspx

С помощью пользовательских элементов управления вы можете добавить свою разметку и код в .ascx, а затем несколько раз вызвать его в своей главной странице / веб-форме, избегая дублирования кода.

0 голосов
/ 03 ноября 2011

Я не пробовал этого, но вы могли бы найти содержимое заполнителя, который вы заинтересованы в дублировании, и скопировать его в свой код. Это сообщение: http://programcsharp.com/blog/archive/2009/01/22/test-if-masterpage-contentplaceholder-has-content-or-is-empty.aspx

имеет хорошее представление о работе с мастер-страницами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...