1

ビューの 1 つに、次のコードを使用して列の 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

実際には、2 番目の例に配置したコードは、要素Html.Encodeのスタイルを設定しているため、ヘルパーでも機能します。<p>たとえば、それを行う1つの方法:

@{
    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 に答える