To pytanie zaznacza Literal vs Label natomiast kwestia ta wskazuje, Panel VS. PlaceHolder ale właśnie dziś debatował z kolegą na temat korzystania PlacHolder vs dosłownym dodawania znaczników HTML, który jest generowany w czasie wykonywania. Obie kontrolki nie generują żadnych dodatkowych znaczników, ale szukamy odpowiedniej kontroli do dodawania generowanych znaczników w locie. The answer of this question sugeruje użycie obu do dodania generowanych znaczników, więc zastanawiam się, która kontrola/podejście powinno zostać użyte do dodania wygenerowanych znaczników i nic więcej.Miejsce zarezerwowane vs dosłownym dodawania znaczników HTML generowanego w czasie wykonywania
Odpowiedz
Żadne z nich nie są opatrzone znacznikami (co może być bardzo dobrą rzeczą). Jednak Placeholder
może zawierać kontrolki podrzędne, podczas gdy Literal
nie może.
Dla porównania, Placeholder
może zawierać inne elementy sterujące, ale nie ma właściwości Text
.
Zastanawiam które kontrolują/podejście powinniśmy używać tylko do dodawania wygenerowany znaczników i nic więcej.
Jeśli przez "wygenerowany" masz na myśli końcowy wynik to ciąg, użyłbym Literal
. Jeśli generujesz drzewo kontrolne, dodaj te formanty do Placeholder
.
Albo, jeśli chcesz pominąć deklarację kontroli serwerów całkowicie:
<h2>Hello World</h2>
<p>The following is generated markup.</p>
<%= base.GetGeneratedMarkup() %>
wierzę Literal
nadal generowane pod maską na to, ale to pozwala mieszać treść generowaną ze znacznikami część twojej strony/kontroli (podobna do Razor).
PlaceHolder vs Literal for adding HTML
Głównym różni się kontrola Dosłowne mają właściwość Text
(i Mode), który jest również zapisany na ViewState The PlaceHolder
jest całkowicie pusty.
Więc można użyć dosłownym sterowania, aby dodać bezpośrednie jakiś ciąg kod HTML, i można użyć zastępczy dodać kilka innych formantów lecz nie dodając żadnego bezpośredniego kod HTML.