Estou atualizando minhas exibições .aspx antigas com o novo mecanismo de exibição Razore. Eu tenho vários lugares onde eu tenho código assim:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
Idealmente, eu gostaria de fazer isso:
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
No entanto, existem dois problemas aqui:
vote-up@{puzzle.UserVote
.... não está tratando o símbolo @ como o início de um bloco de código@puzzle.UserVote == VoteType.Up
olha para a primeira parte@puzzle.UserVote
como se fosse para renderizar o valor da variável.
Alguém sabe como resolver esses problemas?
@(isSomething ? "class='test'" : "")
exemplo , por exemplo, injetar javascript ou similar, ele os codificará como entidades '
e quebrará a página. Então você deve usar Html.Raw("..")
. Caso contrário, com o código acima, você terminará com algo como o <p class='test'>
que é inválido.
@(puzzle.UserVote == VoteType.Up ? "-selected" : "")