3

asp:label和 html有什么区别label

我知道第一个是在服务器上呈现的,所以基本上它返回一个跨度选项卡,但它有什么用?在哪些情况下需要使用 HTML 标签,在哪些情况下需要使用asp:label? 我知道如果我把它作为一个 ASP 控件,我可以通过编程方式访问它,但是纯粹在设计 UI 方面两者之间有什么区别?

4

1 回答 1

9

如果 asp:Label 将其“AssociatedControlID”属性值设置为页面上表单控件的 ID,那么它实际上将呈现为 HTML 标签控件(“for”值设置为同一控件的客户端 ID)当呈现给客户端时。

HTML 标签控件严格设计为表单控件(即输入、选择或文本区域)提供标签/标题,向用户描述表单控件的目的(参见https://developer.mozilla.org/en -US/docs/HTML/Element/label )。标签通常(强烈)使用“for”属性与特定输入相关联,该属性应该是输入的 ID。这对于那些无法仅根据文本和控件的接近程度来解释关系的具有可访问性需求的人特别有用。想象一个包含多个文本框但无法知道每个文本框需要哪些输入的表单。HTML 标签控件不用于此上下文之外的一般文本。

如果 asp:Label 的“AssociatedControlID”属性没有值,则控件将简单地呈现为包含文本的跨度控件。一些开发人员喜欢使用 asp:Labels 将文本输出到页面上,从而使控件具有双重用途(与 HTML 对应物不同)。我个人更喜欢为此目的使用 asp:Literals,因为它让我可以更好地控制包含的标记。

选择 asp:Label 而不是原生 HTML 标签控件的原因是您可以使用服务器端代码轻松地与它进行交互,例如更改文本或 CssClasses 以响应服务器事件,并且您可以输入服务器 ID 作为“AssociatedControlID”值将在客户端的“for”值中自动呈现为客户端 ID(例如,显示为“ct100_MainContent_TextBox1”而不是“TextBox1”)。

于 2013-01-13T01:02:21.933 回答