0

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

[RegularExpression(@"<REGEX IS HERE>", 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(@"<REGEX IS HERE>", ErrorMessage = "Please enter a valid e-mail address")]        
[Required]        
[DataType(DataType.EmailAddress)]        
[Display(Name = "Confirm Email")]        
public string ConfirmEmailAddress { get; set; }

所有其他验证(即必需的/正则表达式)工作正常,但它不适用于比较客户端,它在表单发布时返回并出现错误。

我读过很多文章说 jquery.validate.unobtrusive 和 jquery1.5.1 中存在错误,但无论我做什么都不能解决问题。

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

4

2 回答 2

0

如果您无论如何都要进行花哨的验证,您可能会考虑从 NuGet 中获取MVC Foolproof Validation 。它有自己的“EqualTo”属性,您可能会更幸运。

(附带说明,您可能不需要正则表达式检查确认地址。)

于 2012-07-10T16:01:08.550 回答
0

可能是其他属性在干扰..您真正需要的只是比较和显示属性。必填、Regex、DataType 都是多余的,因为您已经在主节点上拥有这些字段,如果与主节点不匹配,比较将失败。

另一个想法是下载 MvcContrib 包,并使用自动进行电子邮件验证的电子邮件属性,而不是使用正则表达式。

于 2012-07-10T16:14:36.260 回答