在.NET Core中显示对应ID的枚举名称值

时间:2019-06-11 11:26:16

标签: c# .net class asp.net-core enums

我正在开发Web应用程序和.NET Core,最近遇到了这个问题。

它在@Html.DisplayFor(model => model.MutatieReden)中显示枚举值的ID,但是我想显示枚举的名称,因为这是一个“详细信息”视图。

我的枚举是这样构建的,我缺少什么吗?:

//Class property
public Reden? MutatieReden { get; set; }

//Enum
    public enum Reden
    {
        [Display(Name = "Niet van toepassing")] NietVanToepassing = 1,
        [Display(Name = "Administratieve reden")] AdministratieveReden = 2,
        [Display(Name = "Niet akkoord klant")] NietAkkoordKlant = 3,
        [Display(Name = "Incasso blokkade")] IncassoBlokkade = 4,
    }

我尝试了各种解决方案,但其中大多数是针对常规ASP.NET MVC的,答案都已过时。

编辑:这不是重复的,因为这是针对ASP.NET Core的,而其他解决方案则是针对.NET MVC 5.1的。已经尝试过这些解决方案。

2 个答案:

答案 0 :(得分:1)

出于展示目的,我认为我们可以使用:

QT += core
QT += network
TARGET = TcpServer
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app

或者您甚至可以创建仅用于显示的额外属性:

@Html.Display(Model.MutatieReden.GetDisplayName())

将此静态方法添加到静态类中,例如公共静态类EnumHelper

public string MutatieRedenText { get => this.MutatieReden.GetDisplayName(); }

PS:我尚未使用编译器进行测试,但它可能有效

答案 1 :(得分:1)

根本不需要Display属性:

Reden enum_value = Reden.AdministratieveReden;
string enum_name = Enum.GetName(typeof(Reden), enum_value);