1

我的一个视图中有一个简单的字段,它使用以下代码显示我的一个列的总和:

<p class="points-total" >@Html.Encode(ViewData["pointsTotal"])</p>

这是我的控制器代码pointsTotal

pointsTotal = occurrences.Sum(o => o.Points);
ViewData["pointsTotal"] = pointsTotal.ToString();

我想根据pointsTotal. 例如,如果总分超过 50 分,我想将其分配给 class points-total-fifty

我知道我可以通过执行以下操作在 DisplayFor 等其他 HTML 助手上执行此操作:

<p class="@(item.Total > 50 ? "points-total-fifty" : 
         "points-total")">@Html.DisplayFor(modelItem => item.Total)</p>

有没有办法用 Html.Encode 助手做同样的事情?

4

1 回答 1

2

实际上,您为第二个示例编写的代码也可以与Html.Encode帮助器一起使用,因为您正在为<p>元素设置样式。例如,一种方法:

@{
    string cssClass = "points-total";
    int? total = ViewData["pointsTotal"] as int?;

    if (total.HasValue && total > 50)
    {
        cssClass = "points-total-fifty";
    }
}
<p class="@cssClass" >@Html.Encode(ViewData["pointsTotal"])</p>
于 2012-12-06T22:38:12.797 回答