虽然微软已经在Razor MVC4中创建了一些HTML属性的自动呈现,但我花了相当多的时间才发现如何基于条件Razor表达式在元素上呈现第二个CSS类。我想和大家分享一下。
基于模型属性@model.details,我想显示或隐藏列表项。如果有详细信息,则应显示DIV,否则应将其隐藏。使用jQuery,我需要做的就是分别添加一个类Show或Hide.出于其他目的,我还想添加另一个类“ Details ”。所以,我的标记应该是:
<div class="details show">[Details]</div>
或<div class="details hide">[Details]</div>
下面,我展示了一些失败的尝试(假设没有详细信息,则会导致标记)。
这个:<div @(@Model.Details.Count > 0 ? "class=details show" : "class=details hide")>
,
将呈现此:<div class="details" hide="">
。
此:<div @(@Model.Details.Count > 0 ? "class=\"details show\"" : "class=\"details hide\"")>
。
将呈现此:<div class=""details" hide"="">
。
此:<div @(@Model.Details.Count > 0 ? "class='details show'" : "class='details hide'")>
将呈现此:<div class="'details" hide'="">
。
这些都不是正确的标记。