asp:Label vs asp:Literal: Best Practices
Many times we are using asp:Label controls as Label to
various Input controls (Textbox, DropDown etc.) and most
of the time we are not applying any styles to Label
control.
Label vs Literal:
Label:
<asp:Label id="lblMessage" runat="server"
CssClass="anyclass" Text="My Label" />
will be rendered as:
<span id="ctl00_ContentPlaceHolder1_lblMessage"
class="anyclass">My Label</span> //assuming you
are using masterpage
Literal:
<asp:Literal id="ltrMessage" runat="server" Text="My
Literal" />
will be rendered as:
My Literal
In any case(with or without masterpage), extra
<span> element with id is added to rendered HTML.
You can see from the difference in rendering of Label and
Literal control that Labels should be used only when any
kind of styling needs to be applied to the Text rendered
by Label. In my case, most of the time we are giving
styles to the TD element and no extra styling required for
Text inside TD element. In that case, you must use Literal
control to minimize the amount of HTML rendered in
browser.
Hope this helps...