我一直在查看文件MicrosoftMvcJQueryValidation.js
,它是您的页面与ASP.NET MVC 2 Beta中的jquery.validate
对象之间的层。
它将允许jquery.validate支持的任何类型的验证规则,并对regularrexpressions,字符串,范围和必填字段进行额外的特殊处理。如果它是通用/未知规则类型,它将只传递如下参数:
default:
__MVC_ApplyValidator_Unknown(rulesObj,
thisRule.ValidationType, thisRule.ValidationParameters);
break;
但是 - 我似乎无法弄清楚如何在框架生成的JSON中注入其他规则,例如“email”。通常,规则只来自[Required]
。
我知道有很多可扩展性点可以替换整个验证元数据提供程序 - 但我正在寻找一种简单的方法。
我如何使用 - 例如'email'或'creditcard'验证器以及这样的简单模型:
公共类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; }
}
答案 0 :(得分:2)
对于不同类型的数据,您可以保留必填邮件,但也可以在其下添加不同的属性。对于电子邮件和信用卡这样的Regular Expression可能效果最好。
[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; }
答案 1 :(得分:2)
使用DataAnnotationsModelValidator
赞this。
使用这些包含
/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>