Maison >développement back-end >C++ >Comment récupérer les noms d'affichage Enum dans les vues MVC Razor ?

Comment récupérer les noms d'affichage Enum dans les vues MVC Razor ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-27 09:16:10679parcourir

How to Retrieve Enum Display Names in MVC Razor Views?

Accès aux noms d'affichage Enum dans les vues MVC Razor

L'affichage efficace des noms d'affichage d'énumération dans vos vues MVC Razor nécessite l'accès aux métadonnées d'attribut. Cela peut être géré avec élégance à l’aide d’une méthode d’extension personnalisée tirant parti de la réflexion.

Approche de la méthode d'extension

La méthode d'extension suivante fournit une solution propre :

<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>

Cette méthode utilise la réflexion pour examiner le type d'énumération et récupérer le premier attribut du type spécifié (TAttribute) associé au membre d'énumération correspondant à la valeur d'énumération fournie.

Mise en œuvre pratique

Voici comment intégrer cette méthode d'extension dans votre vue Razor :

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

Ce code parcourt les valeurs d'énumération UserPromotion. Pour chaque valeur présente dans la propriété Model.JobSeeker.Promotion (en supposant qu'il s'agit d'une énumération de drapeaux), il récupère la propriété DisplayAttribute de Name en utilisant la méthode d'extension et l'affiche. Cela garantit que seules les valeurs d'énumération sélectionnées sont affichées avec leurs noms d'affichage conviviaux.

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