使用自定义属性进行模型验证
如果内置属性不足以验证模型数据,则可以将验证逻辑放在从 ValidationAttribute 派生的类中。在此示例中,只有奇数是模型成员的有效值。
自定义验证属性
public class OddNumberAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
try
{
var number = (int) value;
if (number % 2 == 1)
return ValidationResult.Success;
else
return new ValidationResult("Only odd numbers are valid.");
}
catch (Exception)
{
return new ValidationResult("Not a number.");
}
}
}
模型类
public class MyModel
{
[OddNumber]
public int Number { get; set; }
}