【问题标题】:Is there a way to dynamically assign a CSS class to an MVC4 Html.Encode entry?有没有办法将 CSS 类动态分配给 MVC4 Html.Encode 条目?
【发布时间】:2012-12-06 22:18:47
【问题描述】:

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

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

这是我关于pointsTotal的控制器代码:

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

我想根据pointsTotal 的值为该行分配一个不同的类。例如,如果总分超过 50 分,我想将其分配给 points-total-fifty 类。

我知道我可以在 DisplayFor 等其他 HTML 助手上这样做:

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

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

【问题讨论】:

    标签: c# css razor asp.net-mvc-4


    【解决方案1】:

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

    @{
        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>
    

    【讨论】:

    • 出于某种原因,我不得不使用Convert.ToInt32(ViewData["pointsTotal"]); 来转换字符串,但是效果很好。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-04
    • 2012-04-24
    • 2023-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2021-07-10
    相关资源
    最近更新 更多