Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mendapatkan Nama Paparan Enum dalam ASP.NET MVC Razor Views?

Bagaimana untuk Mendapatkan Nama Paparan Enum dalam ASP.NET MVC Razor Views?

Linda Hamilton
Lepaskan: 2025-01-27 09:26:12
asal
818 orang telah melayarinya

How to Retrieve Enum Display Names in ASP.NET MVC Razor Views?

Mengendalikan nama paparan enum dalam kod Razor MVC

Dalam paparan ASP.NET MVC Razor, mengakses nama paparan ahli penghitungan adalah penting untuk menyampaikan penerangan mesra kepada pengguna. Artikel ini meneroka cara untuk mendapatkan semula nama paparan ini dalam konteks kod Razor MVC.

Huraian Masalah

Memandangkan ahli penghitungan yang dihiasi dengan atribut [Paparan], cabarannya ialah untuk mengekstrak nama paparan ini dalam kod Razor. Pengarang berhasrat untuk mengisi senarai dengan nilai pilihan penghitungan Promosi, setiap nilai menunjukkan nama paparannya yang sepadan.

Penyelesaian

Untuk menyelesaikan masalah ini, kami menggunakan kaedah lanjutan untuk mengintrospeksi penghitungan dan mendapatkan semula sifat khusus yang digunakan untuk ahlinya. Berikut ialah kod untuk kaedah sambungan:

<code class="language-csharp">public static class Extensions
{
    public static TAttribute GetAttribute<TAttribute>(this Enum enumValue)
        where TAttribute : Attribute
    {
        return enumValue.GetType()
            .GetMember(enumValue.ToString())
            .First()
            .GetCustomAttribute<TAttribute>();
    }
}</code>
Salin selepas log masuk

Kaedah ini berfungsi sebagai cara umum untuk mendapatkan semula mana-mana harta yang digunakan untuk ahli enum. Dalam kes kami, kami ingin mendapatkan semula sifat [Paparan] untuk mendapatkan sifat Namanya.

Pelaksanaan dalam paparan Razor

Menggunakan kaedah sambungan, kami kini boleh mengubah suai kod Razor seperti berikut:

<code class="language-csharp">@foreach (int aPromotion in Enum.GetValues(typeof(UserPromotion)))
{
    var currentPromotion = (int)Model.JobSeeker.Promotion;
    if ((currentPromotion & aPromotion) == aPromotion)
    {
       var displayName = ((UserPromotion)aPromotion).GetAttribute<DisplayAttribute>().Name;
       <li>@displayName</li>
    }
}</code>
Salin selepas log masuk

Kod ini mendapatkan semula sifat [Paparan] promosi semasa dan mengakses sifat Namanya untuk memaparkan nama paparan yang sepadan dalam item senarai. Ambil perhatian bahawa kod yang diubah suai menggunakan ((UserPromotion)aPromotion) untuk penukaran jenis untuk mendapatkan atribut dengan lebih selamat dan boleh dipercayai.

Contoh penggunaan

Untuk contoh demonstrasi, sila rujuk coretan kod berikut:

<code class="language-csharp">public class Foo
{
    public Season Season { get; set; }

    public void DisplayName()
    {
        var seasonDisplayName = Season.GetAttribute<DisplayAttribute>();
        Console.WriteLine("Which season is it?");
        Console.WriteLine(seasonDisplayName?.Name ?? "Unknown"); // 使用空合并运算符处理可能为null的情况
    }
}

public enum Season
{
    [Display(Name = "It's autumn")]
    Autumn,
    [Display(Name = "It's winter")]
    Winter,
    [Display(Name = "It's spring")]
    Spring,
    [Display(Name = "It's summer")]
    Summer
}</code>
Salin selepas log masuk

Output:

<code>Which season is it?
It's summer</code>
Salin selepas log masuk

Kod yang dipertingkatkan adalah lebih mantap, mengendalikan kemungkinan pengecualian rujukan nol dan dengan lebih jelas menunjukkan cara menggunakan kaedah sambungan dengan betul untuk mendapatkan nama paparan penghitungan dalam paparan Razor.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Nama Paparan Enum dalam ASP.NET MVC Razor Views?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan