새 Razore보기 엔진으로 이전 .aspx보기를 업데이트하고 있습니다. 다음과 같은 코드가있는 곳이 많이 있습니다.
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
이상적으로 나는 이것을하고 싶습니다 :
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
그러나 여기에는 두 가지 문제가 있습니다.
vote-up@{puzzle.UserVote
.... @ 기호를 코드 블록의 시작으로 취급하지 않습니다@puzzle.UserVote == VoteType.Up
@puzzle.UserVote
변수의 값을 렌더링하는 것처럼 첫 번째 부분 을 봅니다.
이 문제를 해결하는 방법을 아는 사람이 있습니까?
이것이 면도기의 인라인 삼항 연산자의 최고 결과이므로, 출력에 html 또는 아포스트로피와 같은 인코딩 가능한 문자 (예 :
—
NibblyPig 2016 년
@(isSomething ? "class='test'" : "")
javascript 또는 이와 유사한 것을 삽입 하는 경우)가 포함되어 있으면 '
페이지와 같은 엔티티로 인코딩 되어 페이지가 손상됩니다. 따라서를 사용해야합니다 Html.Raw("..")
. 그렇지 않으면 위의 코드를 사용하면 <p class='test'>
잘못된 것으로 끝날 것입니다 .
@(puzzle.UserVote == VoteType.Up ? "-selected" : "")