如何将类添加到ASP.NET控件?

时间:2013-01-29 20:09:15

标签: html css asp.net

我一直在研究某人的项目,并注意到Visual Studio会为每个具有class属性的ASP标记生成一条消息。例如:

  

属性'class'不是元素'TextBox'的有效属性。

如果我访问该网站,它似乎正常工作。生成消息的示例如下所示:

<asp:TextBox class="makeInline loginItem" ID="UserName" runat="server"></asp:TextBox>

在网站上它变为:

<input type="text" class="makeInline loginItem" id="Login1_UserName" name="Login1$UserName">

因此看起来class属性被转移到HTML标记。这样很好,还是有更好的方法来做到这一点?

3 个答案:

答案 0 :(得分:7)

服务器控件使用CssClass代替class(可能是为了避免对class含义的含糊不清)。

  

所以看起来class属性被转移到了HTML   标签。这样很好还是有更好的方法来做到这一点?

将继承未知属性。但是在它适用于这种情况下,尽可能使用控件所期望的属性。 ASP.Net偶尔会改变标记以“纠正”它。示例:有效的HTML 5输入类型属性(例如type="number")在呈现控件时被“更正”,直到发布修复程序以纠正问题。

您可以毫无顾虑地在服务器代码上放置自定义属性(例如data-*)。

<asp:TextBox runat="server" ID="txtTest" data-foo="bar" />

这不会在Visual Studio 2012中导致验证错误,并按预期呈现。

答案 1 :(得分:2)

使用CssClass代替class来删除Visual Studio生成的消息。但不管怎样,使用类也可以。

答案 2 :(得分:2)

要使用的正确属性是CssClass,在生成页面时,它也会转换为HTML class属性。