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