asp.Net   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了asp.net-mvc-3 – 剃刀索引视图中的条件格式大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图根据项目到期日的距离,有条件地将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>

大佬总结

以上是大佬教程为你收集整理的asp.net-mvc-3 – 剃刀索引视图中的条件格式全部内容,希望文章能够帮你解决asp.net-mvc-3 – 剃刀索引视图中的条件格式所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: