Je mets à jour mes anciennes vues .aspx avec le nouveau moteur de vue Razore. J'ai un tas d'endroits où j'ai du code comme celui-ci:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
Idéalement, j'aimerais faire ceci:
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
Cependant, il y a deux problèmes ici:
vote-up@{puzzle.UserVote
.... ne traite pas le symbole @ comme le début d'un bloc de code@puzzle.UserVote == VoteType.Up
regarde la première partie@puzzle.UserVote
comme si elle était censée rendre la valeur de la variable.
Quelqu'un sait comment résoudre ces problèmes?
@(isSomething ? "class='test'" : "")
exemple en injectant du javascript ou similaire, il les encodera comme des entités comme '
et cassera la page. Vous devez donc utiliser Html.Raw("..")
. Sinon, avec le code ci-dessus, vous vous retrouveriez avec quelque chose comme <p class='test'>
qui n'est pas valide.
@(puzzle.UserVote == VoteType.Up ? "-selected" : "")