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.Upmira la primera parte@puzzle.UserVotecomo 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" : "")