![](/img/trans.png)
[英]How to convert primitive type value to enum value, when enum contains elements with the same values?
[英]How to validate enum in DTO so it contains valid values for that enum type?
我有一個 DTO:
public class MyDto
{
[Required]
[Range(1, int.MaxValue)]
public MyEnum MyEnum { get; set; }
}
public enum MyEnum
{
E1 = 1,
E2 = 2 << 0,
E3 = 2 << 1,
E4 = 2 << 2,
}
當帶有空正文{}
的請求被發送到帶有簽名的方法時: public async Task<IActionResult> Method([FromBody] MyEnum value)
MyEnum
將默認為 0,這不是該枚舉的有效值。 這就是我引入[Range(1, int.MaxValue)]
注釋的原因。 但是如果請求看起來像這樣:
{"MyEnum": 3}
[FromBody]
只會使用無效值3
構造MyDto
。
問題:當請求包含對MyEnum
無效的值時,如何使[FromBody]
無法通過 model 驗證,唯一有效的值是E1,E2,E3,E4,1,2,4,8,16
?
好的,我找到了:
[Required]
[EnumDataType(typeof(MyEnum))]
public MyEnum MyEnum { get; set; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.