Estoy actualizando mis viejas vistas .aspx con el nuevo motor de vista Razore. Tengo un montón de lugares donde tengo un código como este:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
Idealmente me gustaría hacer esto:
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
Sin embargo, hay dos problemas aquí:
vote-up@{puzzle.UserVote
.... no trata el símbolo @ como el inicio de un bloque de código@puzzle.UserVote == VoteType.Up
mira la primera parte@puzzle.UserVote
como si se supusiera que representa el valor de la variable.
¿Alguien sabe cómo abordar estos problemas?
@(isSomething ? "class='test'" : "")
ejemplo, inyectando javascript o similar, los codificará como entidades '
y romperá la página. Entonces debes usar Html.Raw("..")
. De lo contrario, con el código anterior, terminaría con algo como lo <p class='test'>
que no es válido.
@(puzzle.UserVote == VoteType.Up ? "-selected" : "")