MVC.net bekommt den enum Anzeigenamen in der Ansicht, ohne auf den Enum-Typ in der Ansicht verweisen zu müssen

Habe ich folgende helper-Methode in eine ViewModelBase Klasse, die geerbt wird, durch andere Modelle ansehen:

public string GetEnumName<T>(Enum value)
        {
            Type enumType = typeof(T);
            var enumValue = Enum.GetName(enumType, value);
            MemberInfo member = enumType.GetMember(enumValue)[0];

            var attrs = member.GetCustomAttributes(typeof(DisplayAttribute), false);
            var outString = ((DisplayAttribute)attrs[0]).Name;

            if (((DisplayAttribute)attrs[0]).ResourceType != null)
            {
                outString = ((DisplayAttribute)attrs[0]).GetName();
            }

            return outString;
        }

Ich dann rufen Sie diese aus der Ansicht wie diese:

<p>
@{var rel = Model.GetEnumDisplayName<Enums.wheteverEnum>(Model.wheteverEnum); }
@rel
</p>

Frage ist - kann ich diese Methode, deshalb weiß ich nicht zu sagen, das es der Typ von der enum? Im Grunde würde ich gerne todo für alle enums:

@Modell.GetEnumDisplayName(Modell.wheteverEnum)

Kein typeof keine T, keine Notwendigkeit, fügen Sie einen Verweis auf die Enums - namespace in Sicht...

Möglich?

InformationsquelleAutor der Frage nathfy | 2012-02-17

Schreibe einen Kommentar