枚举.GetName显示注释

本文关键字:注释 显示 GetName 枚举 | 更新日期: 2023-09-27 18:07:15

我有一个枚举,我能够在EnumDropDownListFor中显示,没有问题,并保存枚举。现在我试图从我的记录中获取该值并显示它的DataAnnotation。我一直在尝试Enum.GetName,但遇到了一些问题。

my enum -

public enum LandOwner
    {
        [Display(Name = "Yes")]
        Y =1 ,
        [Display(Name = "No")]
        N =2,
        [Display(Name = "No Nearby Land Owner")]
        O =3
    }
    public LandOwner ownerDropDown { get; set; }

当我保存记录时,它会保存Y, N或o。

我的Enum.GetName—其中Model.LandOwnersNotified为Y、N或o

@Enum.GetName(typeof(OpenBurn.Models.BurnPile.LandOwner), Model.LandownersNotified)

然而,当我运行这个时,我得到以下错误-

传入的值必须是枚举基型或枚举的基础类型,如Int32。'r'n参数名称:value

当我改变枚举时。GetName到

 @Enum.GetName(typeof(OpenBurn.Models.BurnPile.LandOwner), 1)

我知道Enum.GetName的后部分正在寻找int,但是Model.LandownersNotified与enum结合不提供吗?

我将收到所有的Y。我从未收到[Display(name="...")] .

枚举.GetName显示注释

我不能说我明白你在做什么。但是@Enum.GetName被设计为返回枚举值的名称。所以你不能传递枚举给它。

Model.LandownersNotified.ToString() -> Y,N,O
(int)Model.LandownersNotified -> 1,2,3