【发布时间】:2014-06-25 16:34:24
【问题描述】:
我有一个 MVC 5 应用程序,它使用现有系统的值来显示与单位相关的数据。我正在利用数据注释将看起来令人讨厌的旧数据转换为 UI 上格式良好的版本。
我试图弄清楚如何很好地显示 M3 值,使用数字“3”的上标。你会如何解决这个问题?
public enum UnitTypes
{
[Display(Name = "kg")]
KG,
[Display(Name = "kl")]
KL,
[Display(Name = "m<sup>3</sup>")]
M3,
}
此 DisplayTemplate 使用 display 属性(如果存在)。否则默认为枚举的名称。
@using System.ComponentModel.DataAnnotations
@{
var type = (Type)Model.GetType();
var field = type.GetField(Model.ToString());
if (field != null)
{
var display = ((DisplayAttribute[])field.GetCustomAttributes(typeof(DisplayAttribute), false)).FirstOrDefault();
if (display != null)
{
@display.GetName()
}
else
{
@Model
}
}
}
【问题讨论】:
标签: c#-4.0 model-view-controller enums data-annotations display-templates