[Flags]标识的Enum不能使用Html.GetEnumSelectList方法

在使用Asp.Net Core MVC写程序时,对用户类型做了如下定义:

namespace ManufacturingExecutionSystemCore.Enums
{    
    public enum UserType
    {
        [Description("无身份人员")]
        [Display(Name = "无身份人员")]
        UnidentifiedPerson=0x00,
        [Description("生产人员")]
        [Display(Name = "生产人员")]
        ProductionWorker = 0x01,
        [Description("生产主管")]
        [Display(Name = "生产主管")]
        ProductionHead =0x02,
        [Description("生产经理")]
        [Display(Name = "生产经理")]
        ProductionManager = 0x04,
        [Description("仓库人员")]
        [Display(Name = "仓库人员")]
        WarehouseWorker = 0x08,
        [Description("仓库主管")]
        [Display(Name = "仓库主管")]
        WarehouseHead =0x10,
        [Description("仓库经理")]
        [Display(Name = "仓库经理")]
        WarehouseManager = 0x20,
        [Description("质检人员")]
        [Display(Name = "质检人员")]
        QualityCheckWorker =0x40,
        [Description("质检主管")]
        [Display(Name = "质检主管")]
        QualityCheckHead = 0x80,
        [Description("质检经理")]
        [Display(Name = "质检经理")]
        QualityCheckManager =0x100,
    }
}

在写Razor时,使用

<select asp-for="UserType" class="form-control" asp-items="@Html.GetEnumSelectList<UserType>()"></select>

运行时发现报错:

An unhandled exception occurred while processing the request.
ArgumentException: The type 'ManufacturingExecutionSystemCore.Enums.UserType' is not supported. Type must be an enum that does not have an associated FlagsAttribute. (Parameter 'TEnum')
Microsoft.AspNetCore.Mvc.ViewFeatures.HtmlHelper.GetEnumSelectList<TEnum>()

为记录Html.GetEnumSelectList<UserType>()不支持FlagsAttribute标识的Enum,特作此记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值