В asp.net, если вы используете настраиваемый атрибут, обычно он отображается как есть.
Учитывая эту разметку (примечание: такие атрибуты, как id
, name
и for
были удалены во всех примерах, поскольку их сгенерированные идентификаторы / имена являются подробными):
<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.
Кто-нибудь знает, почему этот диапазон отображается для хранения атрибута?
Есть ли способ визуализировать атрибут во входном теге?