如何使用<标签>ASP.NET 中的标签?
如何在 ASP.NET 应用程序中使用 标记? 我希望它有效、可访问且可用。
我理解最佳的HTML方式是这样的:
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
但是如果上面的代码在ASP.NET用户控件中,输入ID将会改变,这意味着标签的“for”属性是无用的。 我可以将 label 标签设置为服务器控件,并在代码中设置其“for”属性(Username.ClientID
),但对于如此简单的事情来说,似乎需要做很多工作。
我过去也见过这种 HTML:
<label>
<span>Username</span>
<input type="text" id="Username" runat="server" />
</label>
正确的方法是什么?
How can I use the <label>
tag within an ASP.NET application? I want it to be valid, accessible, and usable.
I understand the optimal HTML way is this:
<label for="Username">Username:</label>
<input type="text" id="Username" runat="server" />
But if the above code is in an ASP.NET user control, the input ID will change, meaning the label's "for" attribute is useless. I could make the label tag a server control and set its "for" attribute in the code (Username.ClientID
), but it seems like a lot of work for such a simple thing.
I've also seen this HTML used in the past:
<label>
<span>Username</span>
<input type="text" id="Username" runat="server" />
</label>
What is the proper approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我为此使用
控件。 它们被渲染为标签并适当地设置
for
属性。请注意,如果您愿意,还可以在 Label 控件中嵌套其他标签:
I use
<asp:Label ... AssociatedControlID="Username" ...>
controls for this. They get rendered as<label>
tags and set thefor
attribute appropriately.Note that you can also nest other tags within the Label control if you wish:
您也可以这样写:
Phil Haack 有一篇 博客文章< /a> 关于这个主题
You can also write it like this:
Phil Haack has a blog post on this topic
使用
服务器控件。 它有一个属性,可用于设置关联的控件 ID。use the
<asp:Label>
server control. It has a property that you can use to set the associated control ID.我想最简单的方法就是这样。
I guess the easiest way to do it is this.
如果您想要一个标签,但在
AssociatedControlID
中没有其他控件可使用,则可以使用标签本身If you want a label, but don't have another control to use in
AssociatedControlID
one can use the label itself如果您使用的是 .NET 4,您现在可以使用 ClientIDMode 属性来配置一个或多个控件以使用静态或可预测的 ID。 ClientIDMode 属性可以直接在 TextBox 上设置,也可以在任何父控件或包含的页面上设置。
在 MSDN 上了解有关 ClientIDMode 的更多信息
If you are using .NET 4 you can now use the ClientIDMode property to configure one or more controls to use static or predictable ID's. The ClientIDMode property can be set on the TextBox directly or you can set it on any parent control or the containing page.
Read more about the ClientIDMode on MSDN