我想知道是否可以向输入模型的属性添加验证属性。 该属性是一个枚举,我的目标是限制所考虑的属性的枚举值。
有可能吗?
这是我想做的事情:
public enum EnumExample
{
A,
B,
C,
D,
E,
F,
G
}
在第一个模型中,我只想为TypeType属性插入值A,B,C
public class GetABC
{
***[Range (A,B,C)]***
public EnumExample TypeClass { get; set; }
}
我只想为TypeType1属性插入值E,F,G
public class GetEFG
{
***[Range (E,F,G)]***
public EnumExample TypeClass1 { get; set; }
}
有可能吗?
可以使用什么属性?
仅使用Regex吗?
谢谢。
答案 0 :(得分:0)
您可以添加自己的自定义属性验证器,也许还可以以这种方式验证值?
类似的东西:
public class EnumValidatorAttribute : ValidationAttribute
{
private readonly string[] _values;
public EnumValidatorAttribute(params string[] values)
{
_values = values;
}
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (_values.Contains(value))
return ValidationResult.Success;
return new ValidationResult("Not a valid Enum value");
}
}
然后使用,就像:
[EnumValidator("Value1", "Value2")]
public myEnum MyEnumProperty {get;set;}