asp.netでは、カスタム属性を使用する場合、通常はそのままレンダリングされます。
このマークアップを考慮して(注:id
、name
などの属性for
は、生成されたID /名前が冗長であるため、すべての例で削除されました):
<asp:TextBox runat="server" data-foo="bar" />
asp.netで次のようにレンダリングされます:
<input type="text" data-foo="bar" />
つまり、asp.netは変更data-foo
されません。
チェックボックスは通常、次のようにレンダリングされます。
<asp:CheckBox runat="server" Text="Normal" />
次のようにレンダリングします:
<input type="checkbox" />
<label>Normal</label>
ただし、チェックボックスにカスタム属性を追加する場合:
<asp:CheckBox runat="server" Text="Custom attribute" data-foo="bar" />
次のようにレンダリングされます。
<span data-foo="bar">
<input type="checkbox" />
<label>Custom attribute</label>
</span>
ご覧のとおり、属性を保持するためにレンダリングされたスパン。これは、コードビハインドで属性を追加した場合にも発生します。これは、他のHtmlControl、AFAIKでは発生しません。
このスパンが属性を保持するためにレンダリングされる理由を誰かが知っていますか?
inputタグの属性をレンダリングする方法はありますか?