Asp.net mvc 使用ASP.NET MVC进行条件格式设置

Asp.net mvc 使用ASP.NET MVC进行条件格式设置,asp.net-mvc,razor,Asp.net Mvc,Razor,我有一个ASP.NET MVC应用程序,在视图中使用Razor。在我看来,我有以下几点: <table style="width:100%;"> ... </table> ... 我想说,如果(items.Count==0),那么表的背景色应该是橙色。但是,如果(items.Count>0),我希望表格的背景色为灰色。我用剃须刀怎么做 谢谢大家! 您可以使用三元运算符: <table style='width:100%; @(items.Count >

我有一个ASP.NET MVC应用程序,在视图中使用Razor。在我看来,我有以下几点:

<table style="width:100%;">
 ...
</table>

...
我想说,
如果(items.Count==0)
,那么表的背景色应该是橙色。但是,
如果(items.Count>0)
,我希望表格的背景色为灰色。我用剃须刀怎么做


谢谢大家!

您可以使用三元运算符:

<table style='width:100%; @(items.Count > 0 ? "background-color: grey;" : "background-color: orange;" )'>
 ...
</table>

...
CSS:

剃刀:

<table class="table @(items.Count == 0 ? "empty" : null)">
<table class="table">
请注意
null
(空字符串)之间的区别


正如Chris Pratt在他的评论中指出的,如果您不需要支持IE 9之前的版本,那么可以使用
:empty
伪类来获得类似的效果,而无需使用三元运算符

CSS:

剃刀:

<table class="table @(items.Count == 0 ? "empty" : null)">
<table class="table">

只需再提供一个选项,您可以在页面开头设置颜色

@{
    var color = items.Any() ? "#CCC" : "#FF0";
}
在你的餐桌上

<table style="color:@color"></table>


为了减少多余的代码,您可以声明
@(!items.Any()?“empty”:null)
,这是我的首选方法。最好的答案是,如果您可以忽略小于9的IE版本,您实际上可以使用
。table:empty
作为选择器,然后您甚至不需要使用Razor三元组来应用类。IE9+和地球上的其他浏览器都支持
:empty
伪类。@Damian我跳过了它,因为我不想解释
系统。Linq
需要在所有cshtml文件中包含的名称空间集中。(或者包含在cshtml顶部的
@using
。@ChrisPratt我完全同意。@TimothyShields很公平。我喜欢这个答案:)天哪!我是采用者。:)
<table style="color:@color"></table>