5

私は誰かのプロジェクトに取り組んでいて、VisualStudioがクラス属性を持つ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タグに引き継がれるように見えます。これは問題ありませんか、それともこれを行うためのより良い方法がありますか?

4

3 に答える 3

7

サーバーコントロールはCssClass代わりに使用しますclass(おそらく、の意味のあいまいさを避けるためclass)。

したがって、class属性がHTMLタグに引き継がれるように見えます。これは問題ありませんか、それともこれを行うためのより良い方法がありますか?

不明な属性は引き継がれます。ただし、この場合は機能しますが、可能な限り、コントロールが期待する属性を使用してください。ASP.Netは、マークアップを「修正」するように変更する場合があります。type="number"例:問題を修正するための修正がリリースされるまで、コントロールがレンダリングされたときに、有効なHTML 5入力タイプ属性(例)が「修正」されました。

カスタム属性(例data-*)をサーバータグに気にせずに配置できます。

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

これにより、Visual Studio 2012で検証エラーが発生することはなく、期待どおりにレンダリングされます。

于 2013-01-29T20:12:12.987 に答える
3

使用する正しい属性は、ページが生成されるときにCssClassHTML属性にも変換されることです。class

于 2013-01-29T20:11:44.653 に答える
2

Visual Studioによって生成されたメッセージを取り除くために、のCssClass代わりに使用します。classただし、いずれにしても、クラスの使用も機能します。

于 2013-01-29T20:11:24.900 に答える