c# – MVC 3,用于用户注册过程的View Model.密码验证无法正常工作

我正在尝试使用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; }
    }

解决方法:

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

上一篇:luogu P4292 [WC2010]重建计划


下一篇:C#总结项目《影院售票系统》编写总结二