虽然Microsoft在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'="">
。
以上标记都不正确。