Я пытаюсь создать новую пользовательскую проверку, в которой я могу сравнить два значения в одном классе. в этом случае он проверяет, что когда люди меняют свою электронную почту, они должны ввести ее дважды, и эти два значения совпадают. (Сделал бы то же самое для добавления/изменения паролей)
public class CompareAttribute : ValidationAttribute
{
public string CompareValue { get; set; }
public override bool IsValid(string value)
{
//we not validating if its required or not!
if (value == null)
return true;
return value.ToLower().Equals(CompareValue.ToLower());
}
}
Это мой класс атрибута проверки выше. Затем я попытался использовать его из своего класса, делая это
[Compare(CompareValue = newEmail, ErrorMessage = "New email and Confirm email do not match")]
но я получаю сообщение об ошибке на newEmail
Ошибка 3 Требуется ссылка на объект для нестатического поля, метода или свойства «BensBoxing.Domain.EmailChange.newEmail.get».
весь мой класс это
public class EmailChange : Entity
{
[DisplayName("Current Email Address")]
[DataType(DataType.Text)]
[Required(ErrorMessage = "Current Email is a required field")]
[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Valid Email Address is required.")]
public virtual string currentEmail { get; set; }
[DisplayName("New Email Address")]
[DataType(DataType.Text)]
[Required(ErrorMessage = "New Email is a required field")]
[EmailInUse(ErrorMessage = "Email is currently in use")]
[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Valid Email Address is required.")]
public virtual string newEmail { get; set; }
[DisplayName("Confirm Email Address")]
[DataType(DataType.Text)]
[Required(ErrorMessage = "Confirmed Email is a required field")]
[Compare(CompareValue = newEmail, ErrorMessage = "New email and Confirm email do not match")]
[RegularExpression(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", ErrorMessage = "Valid Email Address is required.")]
public virtual string confirmEmail { get; set; }
}