В 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>
Как вы можете видеть, диапазон в rendered для хранения атрибута. Это также происходит, если вы добавите атрибут в код позади. Этого не происходит с другими HtmlControl, AFAIK.
Кто-нибудь знает, почему этот диапазон отображается для хранения атрибута?
Есть ли способ визуализации атрибута во входном теге?