Mic*_*cah 147 asp.net syntax asp.net-mvc razor asp.net-mvc-3
我正在使用新的Razore视图引擎更新旧的.aspx视图.我有很多地方,我有这样的代码:
<span class="vote-up<%= puzzle.UserVote == VoteType.Up ? "-selected" : "" %>">Vote Up</span>
Run Code Online (Sandbox Code Playgroud)
理想情况下我想这样做:
<span class="vote-up@{puzzle.UserVote == VoteType.Up ? "-selected" : ""}">Vote Up</span>
Run Code Online (Sandbox Code Playgroud)
但是这里有两个问题:
vote-up@{puzzle.UserVote
....不会将@符号视为代码块的开头@puzzle.UserVote == VoteType.Up
查看第一部分@puzzle.UserVote
,好像它应该呈现变量的值.有谁知道如何解决这些问题?
CD.*_*D.. 285
这应该工作:
<span class="vote-up@(puzzle.UserVote == VoteType.Up ? "-selected" : "")">Vote Up</span>
Run Code Online (Sandbox Code Playgroud)
Dan*_*tos 24
@( condition ? "true" : "false" )
Run Code Online (Sandbox Code Playgroud)
在大多数情况下,CD..的解决方案将工作得很好。然而,我有一个更扭曲的情况:
@(String.IsNullOrEmpty(Model.MaidenName) ? " " : Model.MaidenName)
Run Code Online (Sandbox Code Playgroud)
这将打印我“ ” 在我的页面中,分别生成源&nbsp;
. 现在有一个函数Html.Raw(" ")
应该让你编写源代码,除了在这个星座中它抛出一个编译器错误:
编译器错误消息:CS0173:无法确定条件表达式的类型,因为“System.Web.IHtmlString”和“string”之间没有隐式转换
所以我最终写了一个像下面这样的语句,它不太好,但即使在我的情况下也能工作:
@if (String.IsNullOrEmpty(Model.MaidenName)) { @Html.Raw(" ") } else { @Model.MaidenName }
Run Code Online (Sandbox Code Playgroud)
注意:有趣的是,一旦进入大括号,就必须重新启动 Razor 块。
归档时间: |
|
查看次数: |
86712 次 |
最近记录: |