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