使用Ternary在Razor中设置元素颜色样式?操作者

时间:2017-08-29 15:56:00

标签: c# css asp.net-mvc asp.net-mvc-4 razor

我有一个HTML元素,它在我的razor cshtml文档中的foreach循环中重复,如下所示:

//@foreach(var item in Collection) ...  then goes this element...

 <div title="Find Item" value="@item.ID" class="btn btn-default btnItem"><i class="fa fa-bullseye" style="@(item.IsItemAvailable? "color:green" : "color:red")"></i></div>

请注意以下部分:

style="@(item.IsItemAvailable? "color:green" : "color:red")"

我试图根据名为IsItemAvailable的ViewModel属性设置元素的颜色,如果该项目可用,我会将元素颜色设置为绿色,否则将其设置为红色......

我认为第一件事就是?运算符是在语句为真的时候,因此它意味着项目确实可用并且它的颜色应该设置为绿色??

但由于某种原因,按钮颜色总是设置为红色?我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

使用Html.Raw方法渲染css。

<div title="Find Item" value="@item.ID" class="btn btn-default btnItem">
    <i class="fa fa-bullseye" 
     style="@(item.IsItemAvailable? Html.Raw("color:green") : Html.Raw("color:red"))"></i>
</div>