繁体   English   中英

自定义验证属性不触发jQuery验证

[英]Custom Validate Attribute not triggering jQuery validate

我正在努力找出自定义验证属性的问题,以及为什么它与非自定义验证属性的作用不同。

我已经设置了一个非常基本的自定义验证属性作为示例:

public class AlwaysFalse : ValidationAttribute, IClientValidatable
{
    public IEnumerable<ModelClientValidationRule> 
GetClientValidationRules(ModelMetadata metadata, ControllerContext 
context)
    {
        yield return new ModelClientValidationRule
        {
            ErrorMessage = this.ErrorMessage,
            ValidationType = "alwaysfalse"
        };
    }

    protected override ValidationResult IsValid(object value, 
ValidationContext validationContext)
    {
        return new ValidationResult("Error");
    }
}

我已将属性应用于模型中的属性。

我编写的自定义js如下:

jQuery.validator.addMethod('falseMethod', function (value, element, 
params) {
        return false;
}, '');

// and an unobtrusive adapter
jQuery.validator.unobtrusive.adapters.add('alwaysfalse', {}, function 
(options) {
    options.rules['falseMethod'] = true;
options.messages['falseMethod'] = options.message;
});

我遵循了以下文章的建议: 对定制属性执行客户端验证

当我调用Controllers POST函数时,验证会正常进行。 但是我希望它被触发,类似于其他validationAttributes。 例如,我还在我的模型属性之一上设置了范围验证属性,并且当我在该字段中输入无效信息时,就会将“ input-validation-error”类分配给相关的输入字段。

任何帮助/协助将不胜感激。

如果可以提供更多信息,请告诉我。

好的,现在回答这个。

我对C#还是很陌生,没有意识到将asp.NET核心作为目标框架与尝试使用.Net类之间的区别。

我还收到有关Web.MVC类的警告,但未按预期工作。

论坛帖子解决了我的问题: ASP.Net Core MVC-自定义属性的客户端验证

更改为使用使用Microsoft.AspNetCore.Mvc.ModelBinding.Validation的IClientModelValidator类;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM