Apabila bekerja dengan enum yang dipertingkatkan dengan atribut paparan dalam pandangan Razor ASP.NET MVC, dengan cekap mengakses nama-nama paparan ini adalah penting untuk mewujudkan antara muka mesra pengguna. Artikel ini membentangkan penyelesaian untuk mencapai ini.
Cabaran terletak pada mendapatkan nama -nama paparan ahli -ahli enum berdasarkan nilai bendera mereka. Pendekatan yang sama melibatkan penggunaan refleksi. Kaedah lanjutan berikut,
, memudahkan ini:
GetAttribute()
<code class="language-csharp">public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute { return enumValue.GetType() .GetMember(enumValue.ToString()) .First() .GetCustomAttribute<TAttribute>(); }</code>
Memohon ini untuk pandangan pisau cukur anda, kod yang lebih baik akan kelihatan seperti ini:
Kod Razor yang disemak ini memanfaatkan kaedah
<code class="language-csharp">@foreach (var aPromotion in Enum.GetValues(typeof(UserPromotion))) { var currentPromotion = (int)Model.JobSeeker.Promotion; if ((currentPromotion & aPromotion) == aPromotion) { @aPromotion.GetAttribute<DisplayAttribute>().Name } }</code>
untuk setiap ahli enum dalam gelung. Properti GetAttribute()
atribut yang diambil kemudian memberikan nama paparan yang dikehendaki. Pendekatan ini memastikan bahawa nama mesra pengguna dipaparkan dan bukannya nilai enum yang mendasari. DisplayAttribute
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Paparan Ahli Enum dalam ASP.NET MVC Razor Views?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!