Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
自定义验证属性不能与jquery一起使用_Jquery_Unobtrusive Validation - Fatal编程技术网

自定义验证属性不能与jquery一起使用

自定义验证属性不能与jquery一起使用,jquery,unobtrusive-validation,Jquery,Unobtrusive Validation,我正在尝试向表单上的“出生日期”字段添加自定义模型验证属性。该属性本身的工作原理与我提交日期不正确的表单时相同,它无法通过验证 然而,我使用的是jquery不引人注目的验证,虽然触发了标准模型验证属性并阻止表单提交,但这个自定义属性没有 我的自定义属性如下所示: public class DateMustBeInThePast : ValidationAttribute { public override bool IsValid(object value) {

我正在尝试向表单上的“出生日期”字段添加自定义模型验证属性。该属性本身的工作原理与我提交日期不正确的表单时相同,它无法通过验证

然而,我使用的是jquery不引人注目的验证,虽然触发了标准模型验证属性并阻止表单提交,但这个自定义属性没有

我的自定义属性如下所示:

public class DateMustBeInThePast : ValidationAttribute
{
    public override bool IsValid(object value)
    {
        if (value == null) return true;

        var date = (DateTime)value;
        return date < DateTime.Now;

    }
}
因此,所有属性(如字段)都是必需的,并且必须采用正确的工作格式,但是“DateMustBeInThePast”在表单提交后才会被检查

我在视图中包含了jquery.validate.jsjquery.validate.unobtrusive.js脚本


有人能告诉我如何获得验证以检查此规则的正确方向吗?

您需要定义客户端自定义适配器这是否回答了您的问题?
[Required(ErrorMessage = "Please enter a valid date")]
    [DisplayName("Date of Birth")]
    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    [DateMustBeInThePast(ErrorMessage = "Date of Birth must be in the past")]
    public DateTime? Dob { get; set; }