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