gpt4 book ai didi

asp.net-mvc-3 - Razor 索引 View 中的条件格式

转载 作者:行者123 更新时间:2023-12-03 11:04:40 24 4
gpt4 key购买 nike

我正在尝试有条件地添加 CSS background-color到一组表格行,基于项目的到期日期有多接近。 30 天或更短的天数应为红色,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 block 缺少关闭 } ,但据我所见,它们是匹配的,所以我假设实际问题是其他问题。

最佳答案

Razor 要求直接在代码块内的标签是平衡且格式良好的。
因此,第一次打开后的所有代码<tr>标签实际上被解析为标记,因此最终的}只是关闭if .

要解决此问题,您可以强制 Razor 通过在行前加上 @: 来忽略标签。 .

或者,您可以摆脱 if完全和写

string style = daysLeft <= 30 ? "background-color:Red" : null;
<tr style="@style">
...
</tr>

关于asp.net-mvc-3 - Razor 索引 View 中的条件格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9706943/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com