【问题标题】:ASP.NET Core - Create custom model validation如何在 ASP.NET Core 中实现自定义模型验证?
【发布时间】:2016-07-12 15:07:56
【问题描述】:

在以前版本的 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 依赖项。

【问题讨论】:

    标签: c# asp.net-core asp.net-core-mvc asp.net-core-1.0


    【解决方案1】:

    在 ASP.NET Core 中有两种方法可以进行自定义模型验证:

    • ValidationAttribute 子类化的自定义属性。当您想将自定义业务逻辑应用到具有属性的特定模型property 时,这很有用。
    • 实施IValidatableObject 以进行类级验证。当您需要一次对整个模型进行验证时,请使用此选项。

    documentation 有这两个例子。在您的情况下,IValidatableObject 可能是最好的方法。

    【讨论】:

    • 我在他们的文档中寻找自定义验证部分,但看起来我错过了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多