ASP.Net:文字与标签

Chu*_*utt 98 html c# asp.net controls

我只是想听听一些关于何时何地应该使用LITERAL控件的权威LABEL.

据我了解,区别在于:A LABEL可以通过<SPAN>添加的标签进行样式设置.

我个人发现<SPAN>在我的HTML中添加标签非常烦人,并且实际上从未通过ASP实际应用样式,所以LITERALs似乎应该是大多数时候应该使用的...但我担心还有其他考虑因素或好处使用标签,我不知道.

如果我们不对它们应用样式,LABELLITERALs 替换任何s 是否100%罚款?没有其他考虑因素吗?

Gra*_*ark 123

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

因此,标签的样式可以更容易,但如果您只是插入文本,文字是可行的方法.文字控件还有一个方便的属性Mode,用于控制文本的呈现方式.您可以对其进行HTML编码,或者在不做任何更改的情况下进行渲染,或者删除任何"不支持的标记语言元素".

如果您没有应用任何样式(例如使用LabelCssClass属性),可以LabelLiteral控件替换控件.

  • @Django:Chris Marisic的回答非常重要; 当你想要一个HTML` <label>`元素时,应该总是使用ASP.Net`Label`控件.除此之外,Labels在`<spans>`之间呈现文本,Literals不呈现文本,Literals使您可以更好地控制文本的呈现方式.两个控件都没有特殊事件,它们的内容可以在代码隐藏中以完全相同的方式访问(通过`Text`属性). (2认同)
  • 复选框!单选按钮!如果您使用 `Label` 控件,则可以添加 `AssociatedControlID` 属性以及与标签关联的复选框或单选按钮的 ID。这样你就可以点击标签,相关的控件就会被激活。使可点击的目标区域更大也将使用户界面更易于使用。 (2认同)

Chr*_*sic 33

当你有类似的代码时

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

<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
Run Code Online (Sandbox Code Playgroud)

最好使用标签元素,因为它会正确地将其转换为label具有for针对文本框的正确属性的html 元素,这样,如果用户点击标签,它会自动将光标设置在文本字段中.

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


Shi*_*ala 19

在此输入图像描述

要显示简单的文本,格式化文本或HTML文本,我将首先从文字开始,因为它的轻量级,并不会发出额外的SPAN标记.

观看此视频,演示有关这些额外标签的信息.

但我们不能在文字上应用CSS,我们无法将Label1.Attributes.Add等属性添加到文字中.任何面向容器的东西都无法实现,因为文字没有被SPAN标签包围.

很遗憾看到很多ASP.NET Webform的人默认情况下选择label来显示文本而不知道它会生成额外的SPAN标签,如果你有很多标签,它会使你的HTML变得很重.