0

如何在带有 ej2.syncfusion 和 asp.net 核心的表中显示 Name 参数?

我的模型是:

public class MyEntity
    {

        public int ID;
        
        public enum StateEnum
        {
            [EnumMember(Value = "State A")]
            [Display(Name = "State A")]
            A = 0,
            [EnumMember(Value = "State B")]
            [Display(Name = "State B")]
            B= 1
        }

   public StateEnum StateEnum{ get; set; }

}

我在控制器中获取数据以提供表格:

 public IActionResult Index()
        {
            var myEntities= _context.MyEntities.ToList();
            return View(myEntities);
        }

在视图中,我使用带有 ej2.syncfusion 的 GRID:

<ejs-grid id="Grid" dataSource="@Model" allowPaging="true" allowFiltering="true" allowSorting="true">
    <e-grid-filterSettings type="Menu"></e-grid-filterSettings>
    <e-grid-pagesettings pageSize="4"></e-grid-pagesettings>
    <e-grid-columns>
        <e-grid-column headerText="ID" field="ID" textAlign="Right" width="120" isPrimaryKey="true"></e-grid-column>
        <e-grid-column headerText="StateEnum" field="StateEnum" textAlign="Right" width="120" ></e-grid-column>
       
    </e-grid-columns>

</ejs-grid>

结果我得到了一张桌子:

ID | StateEnum
----------------
1  | 0
2  | 1

但我想从枚举中获取显示名称:

ID | StateEnum
----------------
1  | State A
2  | State B

有人可以帮助我吗?

4

2 回答 2

0

你可以找到这个问题的答案。或者您可以使用静态类而不是枚举。

public static class StateEnum
{
    public const int A = 0;
    public const int B = 1;
}
于 2021-04-19T04:37:47.153 回答
0

根据您的查询,我们了解到您希望显示枚举中的名称(状态 A 和状态 D,而不是 A 和 B)。为了达到这个要求,我们建议使用Newtonsoft 装饰器 (StringEnumConverter)将 Enum 转换为字符串值,如下所示。请参考以下代码示例。

public long ID;     
[Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.StringEnumConverter))]
            
public StateEnum StateEnum { get; set; }
于 2021-04-28T09:52:56.010 回答