Ich habe eine Eigenschaft in meinem Modell namens "Promotion", deren Typ eine Flaggenaufzählung namens "UserPromotion" ist. Mitglieder meiner Aufzählung haben folgende Anzeigeattribute:
[Flags]
public enum UserPromotion
{
None = 0x0,
[Display(Name = "Send Job Offers By Mail")]
SendJobOffersByMail = 0x1,
[Display(Name = "Send Job Offers By Sms")]
SendJobOffersBySms = 0x2,
[Display(Name = "Send Other Stuff By Sms")]
SendPromotionalBySms = 0x4,
[Display(Name = "Send Other Stuff By Mail")]
SendPromotionalByMail = 0x8
}
Jetzt möchte ich in meiner Ansicht beispielsweise eine ul erstellen können, um die ausgewählten Werte meiner Eigenschaft "Promotion" anzuzeigen. Dies ist, was ich bisher getan habe, aber das Problem ist, wie kann ich die Anzeigenamen hier erhalten?
<ul>
@foreach (int aPromotion in @Enum.GetValues(typeof(UserPromotion)))
{
var currentPromotion = (int)Model.JobSeeker.Promotion;
if ((currentPromotion & aPromotion) == aPromotion)
{
<li>Here I don't know how to get the display attribute of "currentPromotion".</li>
}
}
</ul>
System.ComponentModel.DataAnnotations.DisplayAttribute
. Nicht System.ComponentModel.DisplayNameAttribute
.