asp.net-mvc - 使用 ASP.NET MVC 的条件格式

标签 asp.net-mvc razor

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

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

我想说,if (items.Count == 0) ,那么表格的背景颜色应该是橙色。然而,if (items.Count > 0) ,我希望表格的背景颜色为灰色。如何使用 Razor 执行此操作?

谢谢!

最佳答案

CSS:

.table {
    background-color: grey;
}
.table.empty {
    background-color: orange;
}

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

这将呈现为 <table class="table"><table class="table empty"> .

一般来说,这些是核心值( null""truefalse )如何在 Razor 中的 HTML 属性中呈现的小规则:
Razor                    Rendered HTML
----------------------------------------
<abc xyz="s @(null) t">  <abcxyz="s t">
<abc xyz="@(null)">      <abc>
<abc xyz="@("")">        <abc xyz="">
<abc xyz="@(true)">      <abc xyz="xyz">
<abc xyz="@(false)">     <abc>

注意null之间的区别和 "" (空字符串)。

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

CSS:
.table {
    background-color: grey;
}
.table:empty {
    background-color: orange;
}

Razor :
<table class="table">

关于asp.net-mvc - 使用 ASP.NET MVC 的条件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26660587/

相关文章:

asp.net-mvc - 使用用户身份从移动客户端访问 WCF 服务

asp.net-mvc - ASP.NET MVC 2 : ViewData. Model.ExecuteResult 不存在

c# - 在我的 .net MVC View 中使用 @Html.React

c# - 按日期时间范围过滤 MVC 5

asp.net-mvc - 基于 Razor 的 View 看不到引用的程序集

c# - EF 6 代码优先迁移与 dbinitializer

c# - 使用 Json.net 将大量数据流式传输为 JSON 格式

c# - 未处理的异常 System.StackOVerflowException c#

asp.net-mvc-3 - 有什么方法可以让 VS 识别 ReSharper razor 错误并导致编译失败

asp.net - 托管云服务 - 一般实践