显示不同枚举的编辑器

时间:2014-12-29 17:33:45

标签: c# asp.net-mvc

我有以下两个枚举:

   public enum Status{
        Active, Finished, Late
    }


   public enum Priority{
       Urgent, Normal,Low, High
   }

所以基本上我想以不同的风格展示它们。

对于Active状态,我想为Late Status设置一个绿色标签我希望有红色标签。

同样的想法优先,对于紧急,我想显示红色标签和普通与绿色标签。

是否有一种简单的方法可以做到这一点,而不是遍布各地的陈述?

我正在使用Razor。

1 个答案:

答案 0 :(得分:2)

MVC并没有自动完成这些事情,但是这样的事情会起作用:

<label class="status-@(Model.Status.ToString().ToLowerInvariant())">...</label>

我更愿意将该逻辑包装成辅助方法,例如:

public static string CssClass(this Enum e)
{
    string result = e.GetType().Name + "-" + e.ToString();
    return result.ToLowerInvariant();
}

你刚才写道:

<label class="@Model.Status.CssClass()">...</label>