我有一個名爲註冊視圖模型與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屬性處理 - 爲什麼它直接跳入自定義驗證器?