ASP.Net:文字与标签

我只是想听一些权威的时间和地点你应该使用一个LABEL LITERAL控制。

据我所知,不同之处在于:可以通过添加的<SPAN>标签对LABEL进行样式设置。

我个人发现在我的HTML中添加<SPAN>标记是非常烦人的,从来没有实际上通过ASP应用样式,所以LITERAL似乎是什么应该使用大部分时间…但我担心还有其他考虑或利用标签,我不知道。

LITERAL我们不向他们提供样式,用LITERAL取代任何LABEL是否100%好? 有没有其他的考虑?

是的,主要区别在于, Literal控件只是呈现文本,但Label控件用<span>标签包围它(除非使用AssociatedControlID属性,在这种情况下, Label控件将呈现<label>标签)。

所以,标签的样式可以更容易,但如果你只是插入文字,文字是要走的路。 字面控件还有一个方便的属性Mode来pipe理文本的呈现方式。 您可以将其设置为HTML编码,或者不进行任何更改,或者删除任何“不支持的标记语言元素”。

如果您没有应用任何样式(例如通过使用LabelCssClass属性),则可以用Label控件replaceLabel控件。

当你有类似的代码

 <asp:Label EnableViewState="false" ID="Label8" runat="server" AssociatedControlID="txtEmail">Email Address:</asp:Label> <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox> 

使用标签元素是最佳select,因为它可以正确地将它转换为html label元素,而正确的for属性指向您的文本框,因此,如果用户单击标签,则会自动将其光标置于文本字段中。

否则,使用文字,除非文本包在一个span将有利于CSS样式。

在这里输入图像说明

要显示简单的文本,格式化文本或HTML文本,我将首先作为其轻量级的文字开始,并不会发出额外的SPAN标签。

看到这个video演示有关这些额外的标签。

但是我们不能将CSS应用于文字上,我们不能将Label1.Attributes.Add这样的属性添加到文字上。 任何容器导向的东西都不能实现,因为字面不被SPAN标签包围。

看到很多ASP.NET Webform的人默认select标签来显示文本,而不知道它会生成额外的SPAN标签,如果你有很多的标签,可以使你的HTML很重。

在asp.net中区别b / w标签和文字控制

在几乎所有方面,文字控件都与标签控件相同。 这两个控件都用于在Web窗体上显示文本。 (Text属性可以在HTML或代码隐藏中设置。)

最大的区别在于,Label控件在渲染时将文本包装在一个span 。 任何应用于Label控件的style都将使用spanstyle属性进行渲染。

例如,下面的HTML

 <asp:Label ID="Label1" runat="server" Text="Label Text" ForeColor="Red" Font-Bold="true" ></asp:Label> 

将被渲染为

<span id="Label1" style="color:Red;font-weight:bold;">Label Text</span>

文字控件不输出任何周围的标签,所以文本显示为:

例如,下面的HTML

 <asp:Literal ID="Literal1" runat="server" Text="Literal Control Text"></asp:Literal> 

将被渲染为

Literal Control Text

因此,如果您想将任何样式应用于使用Label控件,则使用Literal控件。 正因为如此,与Label控件相比,Literal控件是一个轻量级的控件。

FYI:Literal控件类的inheritance层次结构是(Object => Control => Literal) ,对于Label控件,层次结构是(Object => Control => WebControl => Label)