Ответ 1
Используйте атрибут CompareAttribute
public string EmailAddress {get; set;}
[Compare(nameof(EmailAddress), ErrorMessage = "Emails mismatch")]
public string VerifiedEmailAddress { get; set; }
Можно ли использовать аннотации данных для сравнения двух полей формы (например, для подтверждения адреса электронной почты), до того, как разрешить публикацию формы?
например. может ли аннотация для данных регулярного выражения использовать функцию соответствия для ссылки на другое свойство в ViewModel?
Используйте атрибут CompareAttribute
public string EmailAddress {get; set;}
[Compare(nameof(EmailAddress), ErrorMessage = "Emails mismatch")]
public string VerifiedEmailAddress { get; set; }
В качестве одного из возможных вариантов самооценки:
Внедрите интерфейс IValidatableObject с помощью метода Validate, где вы можете поместить свой код проверки.
public class TestModel : IValidatableObject
{
public string Email{ get; set; }
public string ConfirmEmail { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
if (Email != ConfirmEmail)
{
yield return new ValidationResult("Emails mismatch", new [] { "ConfirmEmail" });
}
}
}
Обратите внимание: это только проверка на стороне сервера.