Maison >développement back-end >C++ >Comment afficher les noms d'affichage des membres Enum dans une vue MVC Razor ?

Comment afficher les noms d'affichage des membres Enum dans une vue MVC Razor ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-27 09:31:08889parcourir

How to Display Enum Member Display Names in an MVC Razor View?

DisplayName Attributs des membres de l'énumération dans la vue du rasoir MVC

Lorsque vous utilisez l'énumération, vous devez souvent récupérer l'attribut de nom d'affichage pour afficher son nom convivial. Ce problème de débordement de pile résout cette demande, en particulier dans le contexte de la vue du rasoir MVC.

La tâche consiste à créer la liste sélectionnée dans le modèle du modèle. Le fragment de code fourni par l'utilisateur démontre la récupération de la valeur d'énumération, mais n'a pas la méthode de recherche de l'attribut de nom.

La solution réside dans la classe ENUMEXtensions fournie dans la réponse:

<code class="language-csharp">public static class EnumExtensions
{
    /// <summary>
    ///     一个通用的扩展方法,用于反射和检索应用于`Enum`的任何属性。
    /// </summary>
    public static TAttribute GetAttribute<TAttribute>(this Enum enumValue)
            where TAttribute : Attribute
    {
        return enumValue.GetType()
                        .GetMember(enumValue.ToString())
                        .First()
                        .GetCustomAttribute<TAttribute>();
    }
}</code>
En utilisant cette méthode d'extension, l'attribut de nom d'affichage de récupération devient très simple:

<code class="language-csharp">var seasonDisplayName = Season.GetAttribute<DisplayAttribute>();
Console.WriteLine("现在是什么季节?");
Console.WriteLine(seasonDisplayName.Name);</code>
Dans votre vue de rasoir, vous pouvez modifier le code comme suit pour contenir le nom d'affichage:

<code class="language-csharp">@currentPromotion.GetAttribute<DisplayAttribute>().Name</code>
Cette méthode vous permet d'afficher dynamiquement le nom d'affichage des membres de l'énumération dans la vue pour améliorer l'expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn