[英]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.