Razor中c#表达式中的条件语句

时间:2017-11-25 18:13:43

标签: c# html razor expression

如何撰写此if声明

@if (camera.IsInStock)
{
    <span class="text-success" style="float:right">IN STOCK</span>
}
else
{
    <span class="text-danger" style="float:right">OUT OF STOCK</span>
}

表达式如下:

@(camera.IsInStock ? "<span style='float:right' class='success'>IN STOCK</span>" : "<span style='float:right' class='danger'>OUT OF STOCK</span>")

我提供的表达并不起作用。 感谢

1 个答案:

答案 0 :(得分:2)

当您尝试在三元表达式中呈现HTML标记时,应使用Html.Raw方法,以便它不会被razor编码为html。

@(camera.IsInStock ? 
        Html.Raw("<span style='float:right' class='text-success'>IN STOCK</span>") 
      : Html.Raw("<span style='float:right' class='text-danger'>OUT OF STOCK</span>"))

我个人更喜欢你的第一种方法,因为我觉得它更具可读性。您也可以考虑创建一个辅助方法,它接受IsInStock标志并返回所需的css类和所需的文本,甚至是整个span标记。