2

我一直在查看文件MicrosoftMvcJQueryValidation.js,它是您的页面和jquery.validateASP.NET MVC 2 Beta 中的对象之间的层。

它将允许jquery.validate支持的任何类型的验证规则,并对正则表达式、字符串、范围和必填字段进行额外的特殊处理。如果它是通用/未知规则类型,它将只传递如下参数:

  default:
     __MVC_ApplyValidator_Unknown(rulesObj,
         thisRule.ValidationType, thisRule.ValidationParameters);
    break; 

但是 - 我似乎无法弄清楚如何将其他规则注入框架生成的 JSON,例如“电子邮件”。通常规则只是来自属性,例如[Required].

我知道有很多可扩展性点可以替换整个验证元数据提供程序 - 但我正在寻找一种简单的方法。

我如何使用 - 例如“电子邮件”或“信用卡”验证器与这样的简单模型结合使用:

公共类 LoginDetails { public bool Editable { get; 放; }

    [Required(ErrorMessage="Please enter your email")]
    public string Username { get; set; }

    [Required(ErrorMessage="Please enter your password")]
    public string Password { get; set; }
}
4

2 回答 2

2

使用 DataAnnotationsModelValidator

这样

使用这些包括

/Scripts/jquery-1.3.2.js

/Scripts/jquery.validate.js

/Scripts/MicrosoftMvcJQueryValidation.js

使用验证功能

    <script type="text/javascript">
    $.validator.addMethod("price", function(value, element, paras) {
        if (value.length == 0) {
            return true;
        }
        if (value > paras.minValue) {
            var cents = value - Math.floor(value);
            if (cents >= 0.99 && cents < 0.995) {
                return true;
            }
        }
        return false;
    });
</script>
于 2010-01-06T13:18:07.663 回答
2

对于不同类型的数据,您可以保留“必需”消息,但也可以在它们下方添加不同的属性。对于电子邮件和信用卡,这样的正则表达式可能效果最好。

[Required(ErrorMessage="Please enter your email")]
[RegularExpression(@"\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b", 
  ErrorMessage="Please enter a valid email address.")]
public string Email { get; set; }

[Required(ErrorMessage="Please enter your password")]
[RegularExpression(@"^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$.", 
  ErrorMessage="Please enter a valid Credit Card.")]
public string CreditCard { get; set; }

查看链接以获取更多信息。

于 2009-12-08T04:37:13.650 回答