【问题标题】:What is the difference between asp:label and HTML label?asp:label 和 HTML 标签有什么区别?
【发布时间】:2012-12-27 04:20:25
【问题描述】:

asp:label 和 html label 有什么区别?

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

【问题讨论】:

标签: asp.net html label webforms


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2011-09-12
    • 2012-02-14
    • 1970-01-01
    • 2018-09-25
    • 2013-04-10
    • 2011-08-13
    • 2023-03-13
    • 2010-12-28
    • 2012-08-15
    相关资源
    最近更新 更多