【问题标题】:How to add a class to an ASP.NET control?如何将类添加到 ASP.NET 控件?
【发布时间】:2013-01-13 12:29:25
【问题描述】:

我一直在处理某人的项目,并注意到 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 标记中。这样可以吗,还是有更好的方法来做到这一点?

【问题讨论】:

    标签: html css asp.net


    【解决方案1】:

    服务器控件使用CssClass 而不是class(大概是为了避免class 的含义出现歧义)。

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

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

    您可以在服务器标签上放置自定义属性(例如data-*)而无需担心。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-06-04
          • 2012-06-09
          • 2010-11-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多