Ответ 1
Это должно работать:
<span class="[email protected](puzzle.UserVote == VoteType.Up ? "-selected" : "")">Vote Up</span>
Я обновляю свои старые .aspx-представления с помощью нового механизма просмотра Razore. У меня есть куча мест, где у меня есть такой код:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
В идеале я хотел бы сделать это:
<span class="[email protected]{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
Однако здесь есть две проблемы:
[email protected]{puzzle.UserVote
.... не обрабатывает символ @как начало кодового блока@puzzle.UserVote == VoteType.Up
смотрит на первую часть @puzzle.UserVote
, как будто она должна отображать значение переменной.Кто-нибудь знает, как решить эти проблемы?
Это должно работать:
<span class="[email protected](puzzle.UserVote == VoteType.Up ? "-selected" : "")">Vote Up</span>
Ключ состоит в том, чтобы инкапсулировать выражение в круглых скобках после разделителя @. Вы можете заставить любое составное выражение работать таким образом.
@( condition ? "true" : "false" )