簡體   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