asp.net-mvc-3 – 剃刀索引视图中的条件格式
发布时间:2020-05-23 17:51:30 所属栏目:asp.Net 来源:互联网
导读:我试图根据项目到期日的距离,有条件地将CSS背景颜色添加到一组表格行。三十天以下应为红色,90 – 31天为琥珀色,其余为绿色。 (我把红色放在第一位,一旦这个工作,我会回去做琥珀色/绿色的行)。 @foreach (var item in Model){ int daysLeft = (item.Expir
|
我试图根据项目到期日的距离,有条件地将CSS背景颜色添加到一组表格行。三十天以下应为红色,90 – 31天为琥珀色,其余为绿色。 (我把红色放在第一位,一旦这个工作,我会回去做琥珀色/绿色的行)。 @foreach (var item in Model)
{
int daysLeft = (item.ExpiryDate - DateTime.Today).Days;
if (daysLeft <= 30)
{
<tr style="background-color:Red">
}
else
{
<tr>
}
<td>
@Html.DisplayFor(modelItem => item.SupplierName)
</td>
<td>
@Html.DisplayFor(modelItem => item.ExpiryDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.InceptionDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.Value)
</td>
<td>
@Html.ActionLink("Edit","Edit",new { id = item.Id }) |
@Html.ActionLink("Details","Details",new { id = item.Id }) |
@Html.ActionLink("Delete","Delete",new { id = item.Id })
</td>
</tr>
}
当我运行这个页面,我得到一个YSOD说,@foreach块缺少其关闭},但据我看到他们是匹配的,所以我假设实际的问题是别的。 解决方法剃刀要求直接在代码块内部的标签是平衡和良好的。因此,第一次打开之后的所有代码< tr>标签实际上被解析为标记,所以最终}只是关闭if。 要解决这个问题,您可以强制Razor通过使用@:的前缀来忽略该标记。 或者,你可以摆脱如果完全和写 string style = daysLeft <= 30 ? "background-color:Red" : null;
<tr style="@style">
...
</tr> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ef-code-first – 如何使用LocalDB和EF,而不使用迁移
- 做一个ASP.NET网站的更改杀死活动会话?
- asp.net – 使用Page.Render覆盖后缓存替换
- .net – 改善翻译和开发人员的工作流程
- 如何使用ASP.NET获取访问者位置(国家,州和城市)
- asp.net-mvc-3 – 在远程部署MVC3时获
- asp.net – 如何使用ValueInjector映射列表
- asp.net – applicationSettings和Web.config
- asp.net – Linq对sql对象是否可序列化为会话状态?
- asp.net-mvc – 在asp.net MVC中使用的TempData集合是什么?
