PlaceHolder против Literal для добавления разметки HTML, созданной во время выполнения
Этот вопрос указывает на Literal против Label, в то время как этот вопрос указывает на Panel VS. PlaceHolder, но только сегодня я обсуждал со своим коллегой вопрос об использовании PlacHolder и Literal для добавления разметки HTML, которая создается во время выполнения. Оба элемента управления не создают никакой дополнительной разметки, но мы ищем правильный элемент управления для добавления сгенерированной разметки на лету. Ответ на этот вопрос предполагает использование обоих для добавления сгенерированной разметки, поэтому мне интересно, какой элемент управления / подход мы должны использовать для простого добавления сгенерированной разметки и ничего более.
2 ответа
Ни один не визуализировать свою собственную разметку (что может быть очень хорошей вещью). Тем не менее, Placeholder
может содержать дочерние элементы управления, тогда как Literal
не могу.
Для сравнения Placeholder
может содержать другие элементы управления, но не имеет Text
имущество.
Мне интересно, какой элемент управления / подход мы должны использовать для простого добавления сгенерированной разметки и ничего более.
Если под "сгенерированным" вы подразумеваете конечный результат - строку, я бы использовал Literal
, Если вы создаете дерево элементов управления, добавьте эти элементы управления к Placeholder
,
Или, если вы хотите полностью опустить объявление серверного элемента управления:
<h2>Hello World</h2>
<p>The following is generated markup.</p>
<%= base.GetGeneratedMarkup() %>
Я верю Literal
все еще генерируется для этого, но позволяет смешивать сгенерированный контент с частью разметки вашей страницы / элемента управления (аналогично Razor).
PlaceHolder vs Literal for adding HTML
Основное отличие состоит в буквальном управлении Text
свойство (и режим), который также сохраняется в Viewstate, PlaceHolder
совершенно пусто
Таким образом, вы можете использовать элемент управления Literal для непосредственного добавления некоторого строкового HTML-кода, и вы можете использовать PlaceHolder для добавления некоторых других элементов управления, но без добавления прямого HTML-кода.