我有一个名为注册视图模型与EmailAddress的属性设置是这样的:的Web API验证错误
[Required]
[DuplicateEmailAddressAttribute(ErrorMessage = "This email address already exists")]
public string EmailAddress { get; set; }
和自定义验证看起来是这样的:
public class DuplicateEmailAddressAttribute : ValidationAttribute
{
public override bool IsValid(object value)
{
PestControlContext _db = new PestControlContext();
int hash = value.ToString().GetHashCode();
if (value == null)
{
return true;
}
if (_db.Users.Where(x => x.EmailAddressHash == hash).Count() > 0)
return false;
else
return true;
}
}
我有问题如果用户在注册表单上留下了空白的电子邮件地址字段,应用程序就会抛出一个空引用异常错误(我认为它正在数据库中查找“”,并且找不到它)。我不明白的是为什么这不是由Required属性处理 - 为什么它直接跳入自定义验证器?