4

我正在尝试使用 MVC 3 创建一个用户注册页面,以便我可以更好地了解它的工作过程、幕后发生的事情等。我在尝试使用[Compare]来检查时遇到了一些问题用户两次输入相同的密码。

我首先尝试将该ComparePassword字段添加到我的用户模型中,但发现这不会按照我想要的方式工作,因为我在数据库中没有该字段,因此显而易见的答案是使用包含该ComparePassword字段的相同信息创建一个视图模型。

所以我现在创建了一个User模型和一个RegistrationViewModel,但是密码上的似乎[Compare]没有返回任何内容,例如,无论我在两个框中输入了什么,当我单击创建时它没有给出错误,这在我看来是意味着它已成功验证。

我不确定我在做什么或不做什么来使这项工作正常进行。我已尝试将其更新jQuery.Validate到最新版本,因为旧版本中报告了一些错误,这对我的努力没有帮助。

以下是我正在使用的所有代码。

    public class RegistrationViewModel
    {
        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "User Name")]
        [RegularExpression(@"(\S)+", ErrorMessage = " White Space is not allowed in User Names")]
        [ScaffoldColumn(false)]
        public String Username { get; set; }

        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "First Name")]
        public String firstName { get; set; }

        [Required]
        [StringLength(15, MinimumLength = 3)]
        [Display(Name = "Last Name")]
        public String lastName { get; set; }

        [Required]
        [Display(Name = "Email")]
        public String email { get; set; }

        [Required]
        [Display(Name = "Password")]
        [DataType(DataType.Password)]
        public String password { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Re-enter Password")]
        [Compare("Password", ErrorMessage = "Passwords do not match.")]
        public String comparePassword { get; set; }
    }
4

1 回答 1

5

CompareAttribute 是否区分大小写?我在属性中看到您引用“密码”,但您的属性被声明为“密码”。

于 2012-08-28T15:36:53.227 回答