Стоит понять, что означают различные теги разметки при обработке разметки шаблонов ASP.NET:
<% expression %> - evaluates an expression in the underlying page language
<%= expression %> - short-hand for Response.Write() - expression is converted to a string and emitted
<%# expression %> - a databinding expression that allows markup to access the current value of a bound control
Таким образом, чтобы выдать значение троичного выражения (условный оператор err), вы можете использовать:
<%= (condition) ? if-true : if-false %>
или вы можете написать L
<% Response.Write( (condition) ? if-true : if-false ) %>
Если вы используете элемент управления с привязкой к данным (например, ретранслятор), вы можете использовать формат привязки к данным для оценки и выдачи результата:
<asp:Repeater runat='server' otherattributes='...'>
<ItemTemplate>
<div class='<%# Container.DataItem( condition ? if-true : if-false ) %>'> content </div>
</ItemTemplate>
</asp:Repeater>
Интересный аспект расширения разметки <% #%> заключается в том, что его можно использовать внутри атрибутов тега, тогда как две другие формы (<% и <% =) можно использовать только в содержимом тега (с несколько особых случаев исключения). Пример выше демонстрирует это. </p>