У меня есть тривиальная проблема.. и не могу ее решить.
У меня это на мой взгляд:
<% if (!Model.DisplayText) { %> <%= Model.MyText %> <% } %>
код >
Как вы можете видеть, я использую 3x <% и% > . Это просто кричит, как плохой код. Но я не могу заставить эту работу работать в одной строке. Это вызывает всевозможные странные ошибки (например, точка с запятой отсутствует, и когда я добавляю ее, она бросает что-то еще):
<% if (!Model.DisplayText) { Model.MyText } %>
код >
Любая идея?!
Попробуйте:
<%= Model.DisplayText ? "" : Model.MyText %>
или
<% if(!Model.DisplayText) Response.Write(Model.MyText); %>
Это:
<%= foo %>
обычно эквивалентен:
<% Response.Write(foo) %>
Итак, вы можете написать:
<% if (!Model.DisplayText) { Response.Write(Model.MyText); } %>
но я не понимаю, что вы на самом деле получаете от этого. Ваш оригинальный код в порядке. Или вы можете использовать тернарный оператор, как предлагает OrbMan.
Или пойдите с ответом OrbMan, он избил меня до него.