asp:label
与html label
有什么区别?asp:label和HTML标签有什么区别?
我知道第一个在服务器上呈现,所以基本上它返回一个跨度选项卡,但它的用途是什么?有人想要使用HTML标签,以及想要使用asp:label
的情况是什么?我知道,如果我把它作为一个ASP控件,我可以以编程方式访问它,但纯粹在设计UI的过程中,两者之间有什么区别?
asp:label
与html label
有什么区别?asp:label和HTML标签有什么区别?
我知道第一个在服务器上呈现,所以基本上它返回一个跨度选项卡,但它的用途是什么?有人想要使用HTML标签,以及想要使用asp:label
的情况是什么?我知道,如果我把它作为一个ASP控件,我可以以编程方式访问它,但纯粹在设计UI的过程中,两者之间有什么区别?
如果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作为客户端的“for”值中的“AssociatedControlID”值自动呈现为客户端ID(例如,显示为“ct100_MainContent_TextBox1”而非“TextBox1”)。
一个好的交想象的差 [http://stackoverflow.com/questions/6839007/should-i-use-the-asplabel-tag][1] [1 ]:http://stackoverflow.com/questions/6839007/should-i-use-the-asplabel-tag – MuhammadHani
一个asp:标签被渲染为一个标签,如果有一个AssociatedControlID – ScottE