如何使用 ? :如果语句带有Razor和内联代码块
我用新的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
,就好像它应该呈现variables的值。
任何人都知道如何解决这些问题?
这应该工作:
<span class="vote-up@(puzzle.UserVote == VoteType.Up ? "-selected" : "")">Vote Up</span>
关键是将expression式封装在@分隔符后面的括号内。 你可以使任何复合expression式以这种方式工作。
@( condition ? "true" : "false" )