Как получить подтверждение на стороне клиента для двух свойств, таких как сценарий с классическим паролем для подтверждения пароля.
Я использую класс метаданных, основанный на отображении EF в моей таблице БД, вот код.
Закомментированные атрибуты в моем классе получат проверку на стороне сервера, но не на стороне клиента.
[MetadataType(typeof(MemberMD))]
public partial class Member
{
//[CustomValidation(typeof(MemberMD), "Verify", ErrorMessage = "The password and confirmation password did not match.")]
//[PropertiesMustMatch("Password", "ConfirmPassword", ErrorMessage = "The password and confirmation password did not match.")]
public class MemberMD
{
[Required(ErrorMessage = "Name is required.")]
[StringLength(50, ErrorMessage = "No more than 50 characters")]
public object Name { get; set; }
[Required(ErrorMessage = "Email is required.")]
[StringLength(50, ErrorMessage = "No more than 50 characters.")]
[RegularExpression(".+\\@.+\\..+", ErrorMessage = "Valid email required e.g. abc@xyz.com")]
public object Email { get; set; }
[Required(ErrorMessage = "Password is required.")]
[StringLength(30, ErrorMessage = "No more than 30 characters.")]
[RegularExpression("[\\S]{6,}", ErrorMessage = "Must be at least 6 characters.")]
public object Password { get; set; }
[Required]
public object ConfirmPassword { get; set; }
[Range(0, 150), Required]
public object Age { get; set; }
[Required(ErrorMessage = "Postcode is required.")]
[RegularExpression(@"^[a-zA-Z0-9 ]{1,10}$", ErrorMessage = "Postcode must be alphanumeric and no more than 10 characters in length")]
public object Postcode { get; set; }
[DisplayName("Security Question")]
[Required]
public object SecurityQuestion { get; set; }
[DisplayName("Security Answer")]
[Required]
[StringLength(50, ErrorMessage = "No more than 50 characters.")]
public object SecurityAnswer { get; set; }
public static ValidationResult Verify(MemberMD t)
{
if (t.Password == t.ConfirmPassword)
return ValidationResult.Success;
else
return new ValidationResult("");
}
}
Любая помощь будет принята с благодарностью, так как я делаю это только 5 месяцев, пожалуйста, постарайтесь не поразить меня.