Флажок Asp.net и атрибут данных html

В asp.net, если вы используете пользовательский атрибут, обычно он отображается как есть.

Учитывая эту разметку (note: такие атрибуты, как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.

Кто-нибудь знает, почему этот диапазон отображается для хранения атрибута?

Есть ли способ визуализировать атрибут во входном теге?

Ответы на вопрос(4)

Ваш ответ на вопрос