【问题标题】:MVC 3 Compare Attribute Not WorkingMVC 3比较属性不起作用
【发布时间】:2012-07-10 15:52:20
【问题描述】:

我正在开发一个 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 中存在错误,但无论我做什么都不能解决问题。

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

【问题讨论】:

    标签: jquery asp.net-mvc validation


    【解决方案1】:

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

    (顺便说一句,您可能不需要正则表达式检查确认地址。)

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-12-07
        • 1970-01-01
        • 2013-11-28
        • 2011-09-26
        • 1970-01-01
        • 1970-01-01
        • 2011-11-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多