Model view controller MVC中的自定义验证-将新电子邮件与确认的电子邮件匹配

Model view controller MVC中的自定义验证-将新电子邮件与确认的电子邮件匹配,model-view-controller,validation,validationattribute,Model View Controller,Validation,Validationattribute,我正在尝试创建一个新的自定义验证,在其中可以比较同一类中的两个值。在这种情况下,检查当人们更改电子邮件时,他们必须输入两次,并且这两个值匹配。(添加/更改密码时也会这样做) 这是上面我的validationattribute类。 然后我试着在课堂上使用它来做这件事 [Compare(CompareValue = newEmail, ErrorMessage = "New email and Confirm email do not match")] 但是我在新邮件上收到一个错误 错误3非静态字

我正在尝试创建一个新的自定义验证,在其中可以比较同一类中的两个值。在这种情况下,检查当人们更改电子邮件时,他们必须输入两次,并且这两个值匹配。(添加/更改密码时也会这样做)

这是上面我的validationattribute类。 然后我试着在课堂上使用它来做这件事

[Compare(CompareValue = newEmail, ErrorMessage = "New email and Confirm email do not match")]
但是我在新邮件上收到一个错误

错误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; }

}

您可以使用一些数据注释扩展,目前正在开发更多的扩展,因此您不必重新发明轮子。跟随链接 您所要做的就是简单地使用Nuget将扩展添加到您的项目中,然后就可以使用那些内置的注释了。干杯

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; }

}