Как мне написать собственный атрибут ValidationAttribute, который сравнивает два поля? Это обычный сценарий «введите пароль» и «подтвердите пароль». Мне нужно убедиться, что эти два поля равны, и для обеспечения согласованности я хочу реализовать проверку с помощью DataAnnotations.
Итак, в псевдокоде я ищу способ реализовать что-то вроде следующего:
public class SignUpModel
{
[Required]
[Display(Name = "Password")]
public string Password { get; set; }
[Required]
[Display(Name = "Re-type Password")]
[Compare(CompareField = Password, ErrorMessage = "Passwords do not match")]
public string PasswordConfirm { get; set; }
}
public class CompareAttribute : ValidationAttribute
{
public CompareAttribute(object propertyToCompare)
{
// ??
}
public override bool IsValid(object value)
{
// ??
}
}
] Итак, вопрос в том, как мне закодировать [Сравнить] ValidationAttribute?