5

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

属性“类”不是元素“文本框”的有效属性。

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

<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 标记中。这很好,还是有更好的方法来做到这一点?

4

3 回答 3

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 中导致验证错误,并按预期呈现。

于 2013-01-29T20:12:12.987 回答
3

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

于 2013-01-29T20:11:44.653 回答
2

使用CssClass而不是class摆脱 Visual Studio 产生的消息。但无论哪种方式,使用类也有效。

于 2013-01-29T20:11:24.900 回答