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

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

Linda Hamilton
Libérer: 2025-01-27 09:26:12
original
784 Les gens l'ont consulté

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

Le nom du nom

dans le code du rasoir MVC

Dans la vue Razor ASP.NET MVC, le nom d'affichage de l'accès aux membres d'énumération est essentiel pour décrire une description amicale aux utilisateurs. Cet article explique comment récupérer ces noms d'affichage dans le contexte du code du rasoir MVC.

Description du problème

étant donné un membre de l'ascenseur qui modifie [afficher] les attributs, les défis pour extraire ces noms d'affichage dans le code du rasoir. L'auteur a l'intention de remplir une liste avec la valeur de sélection de la promotion énumérée, et chaque valeur affiche le nom d'affichage correspondant.

Solution

Afin de résoudre ce problème, nous utilisons une méthode d'extension pour faire de la province dans la province et rechercher des attributs spécifiques appliqués à ses membres. Ce qui suit est le code de la méthode d'extension:

Cette méthode est utilisée comme méthode générale pour récupérer tous les attributs appliqués aux membres d'énumération. Dans notre exemple, nous voulons récupérer la propriété [Display] pour obtenir son attribut de nom.

<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>
Copier après la connexion
Implémentation dans la vue de rasoir

En utilisant la méthode d'extension, nous pouvons maintenant modifier le code de rasoir comme suit:

Ce code récupère la propriété [Affichage] de la promotion actuelle et accédez à sa propriété de nom pour afficher le nom d'affichage correspondant dans l'élément de liste. Notez que le code modifié utilise

pour la conversion de type, qui est plus sécurisé et fiable pour obtenir des attributs.

<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>
Copier après la connexion
Exemple d'utilisation

((UserPromotion)aPromotion)

Exemple connexe Démonstration, veuillez vous référer au fragment de code suivant:

Sortie:

<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>
Copier après la connexion
Le code amélioré est plus robuste, gérant les anomalies potentielles de citation de l'air et montrant plus clairement comment utiliser correctement la méthode d'extension dans la vue de rasoir pour obtenir le nom d'affichage.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal