在使用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,特作此記錄。