MVC 3比较属性不起作用

我正在开发一个MVC应用程序,它有一个注册表单,我想使用Compare,Required和Regex属性进行电子邮件validation。 用户必须输入他们的电子邮件地址,然后确认电子邮件地址,我想使用Compare属性来确保他们输入相同的内容。 这是我的模特;

[RegularExpression(@"", ErrorMessage = "Please enter a valid e-mail address")] [Required] [DataType(DataType.EmailAddress)] [Display(Name = "Email")] public string EmailAddress { get; set; } [Compare("EmailAddress", ErrorMessage = "The email and confirmation email do not match.")] [RegularExpression(@"", ErrorMessage = "Please enter a valid e-mail address")] [Required] [DataType(DataType.EmailAddress)] [Display(Name = "Confirm Email")] public string ConfirmEmailAddress { get; set; } 

所有其他validation,即必需/正则表达式工作正常,但它不适用于客户端的比较,它正在工作表格发布它回来和错误。

我读过许多文章说jquery.validate.unobtrusive和jquery1.5.1中有一个错误,但无论我做什么都无法解决问题。

我在这里拔头发,任何帮助都将不胜感激!

如果你正在进行花哨的validation,你可以考虑从NuGet中获取MVC Foolproof Validation 。 它有自己的“EqualTo”属性,你可能会更幸运。

(在旁注中,您可能不需要正则表达式检查确认地址。)

可能是其他属性正在干扰……您真正需要的只是比较和显示属性。 必需,正则表达式,数据类型都是多余的,因为您已经在主数据库上有这些字段,如果它与主数据库不匹配,则比较将失败。

另一个想法是下载MvcContrib包,并使用自动执行电子邮件validation的Email属性,而不是使用Regex。