取决于实体属性值的动态css类

取决于实体属性值的动态css类,css,asp.net-mvc,asp.net-mvc-4,Css,Asp.net Mvc,Asp.net Mvc 4,我有一个包含Status属性的Orders模型。根据Status的值,我想设置dom中多个元素的CSS <span class = "green">ORDERED</span> <span class = "orange">SHIPPED</span> <span class = "gray">RECEIVED</span> 我想根据详细信息视图中Order.Status的值设置那些绿色/橙色/灰色类。如何执行此操作?您可

我有一个包含Status属性的Orders模型。根据Status的值,我想设置dom中多个元素的CSS

<span class = "green">ORDERED</span>
<span class = "orange">SHIPPED</span>
<span class = "gray">RECEIVED</span>

我想根据详细信息视图中Order.Status的值设置那些绿色/橙色/灰色类。如何执行此操作?

您可以编写一个自定义帮助程序,根据状态值返回正确的CSS:

public static class Htmlextensions
{
    public static string GetStatusCss(this HtmlHelper html, string status)
    {
        if (string.Equals(status, "ORDERED", StringComparison.OrdinalIgnoreCase))
        {
            return "green";
        }
        else if (string.Equals(status, "SHIPPED", StringComparison.OrdinalIgnoreCase))
        {
            return "orange";
        }
        return "gray";
    }
}
然后您可以在视图中调用此帮助程序以获得正确的CSS类:

<span class="@Html.GetStatusCss(Model.Status)">
    @Html.DisplayFor(x => x.Status)
</span>

非常感谢。我该把这门课放在什么地方?没有规定。例如,您可以将其放在Helpers文件夹中。只需通过添加@using指令或将其全局添加到~/Views/web.config文件的namespace部分,确保已将定义此类的命名空间引入视图中的作用域