簡體   English   中英

如何在 ASP.NET Core 中實現自定義模型驗證?

[英]How do I implement custom model validation in ASP.NET Core?

在以前版本的 ASP.NET MVC 中,向模型添加自定義驗證的方法是實現IValidatableObject並實現您自己的Validate()方法。 例如:

public class BestModelEver : IValidatableObject {
    public DateTime? Birthday { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
        if (Birthday.HasValue) {
            yield return new ValidationResult("Error message goes here");
        }
    }
}

這仍然是向 ASP.NET Core 中的模型添加自定義驗證的推薦方法嗎? 使用IValidatableObject需要System.ComponentModel.DataAnnotations依賴項。

在 ASP.NET Core 中有兩種方法可以進行自定義模型驗證:

  • ValidationAttribute自定義屬性。 當您想將自定義業務邏輯應用於具有屬性的特定模型屬性時,這很有用。
  • 實現IValidatableObject以進行類級驗證。 當您需要一次對整個模型進行驗證時,請改用此方法。

文檔有兩者的示例。 在您的情況下, IValidatableObject可能是最好的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM