ASP.NET:向UserControl添加无值属性

时间:2011-03-29 14:03:15

标签: asp.net attributes

在ASP.NET中,您可以通过

将自定义HTML标记属性添加到UserControl
myLabel.Attributes['my-custom-attribute'] = "someValue";
// or Attributes.Add()

...但如何添加没有值的属性?例如,(我并不是说这就是我需要的)W3C规范只需要复选框中的checked属性来考虑它(而不是checked='true'或其他东西)。< / p>

<span ID="ctl-blah-blah-myLabel" my-custom-attribute>some text</span>

我正在考虑使用类似的东西来标记我页面上的特定元素以获取某些客户端行为。我知道我可以对类做同样的事情,但是(1)类操作服务器端是不合适的,(2)我不想仅仅因为标记而污染我的类声明(这对某些人来说可能很奇怪) ,我知道。)

3 个答案:

答案 0 :(得分:2)

我认为你不能,做你所要求的并不是一份结构良好的文件。就checked属性而言,您正在查看的W3C规范是旧的。适当的形式,现在是一天,是把checked =“check”。

虽然许多浏览器可能会接受这一点,但我不建议您这样做。你想要完成的是什么?也许有更好的解决方案。

答案 1 :(得分:1)

这不是您想要采取的方法。它导致格式错误的XHTML和格式错误的ASP.NET。即使是当前的W3C规范也表明过去的checked现在被写为checked="checked"有两种方法是有意义的。

  1. 使用具有布尔值的属性,例如my-custom-attribute="true"

  2. 使用课程。你说你不想污染你的类,但是可能有一种方法来构建你的类定义,这不会是一个问题。对于初学者,您可以将这样的标记放在单独的.css文件中,并确保使用适当的,富有表现力的命名约定。正确完成后,css行为和显示之间的重叠可以是无缝的。

答案 2 :(得分:0)

使用asp:Literal代替asp:Label可以让你这样做。