Aktualizuję moje stare widoki .aspx za pomocą nowego silnika widoku Razore. Mam kilka miejsc, w których mam taki kod:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
Idealnie chciałbym to zrobić:
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
Jednak są tutaj dwa problemy:
vote-up@{puzzle.UserVote
.... nie traktuje symbolu @ jako początku bloku kodu@puzzle.UserVote == VoteType.Up
patrzy na pierwszą część@puzzle.UserVote
tak, jakby miała renderować wartość zmiennej.
Czy ktoś wie, jak rozwiązać te problemy?
@(isSomething ? "class='test'" : "")
Na przykład wstrzyknięcie javascript lub podobne, zakoduje je jako jednostki takie jak '
i przerywa stronę. Więc musisz użyć Html.Raw("..")
. W przeciwnym razie z powyższym kodem otrzymasz coś takiego, <p class='test'>
co jest nieprawidłowe.
@(puzzle.UserVote == VoteType.Up ? "-selected" : "")