C# 如何在ASP.NET Core中实现自定义模型验证?
在以前版本的ASP.NET MVC中,向模型添加自定义验证的方法是通过实现C# 如何在ASP.NET Core中实现自定义模型验证?,c#,asp.net-core,asp.net-core-mvc,asp.net-core-1.0,C#,Asp.net Core,Asp.net Core Mvc,Asp.net Core 1.0,在以前版本的ASP.NET MVC中,向模型添加自定义验证的方法是通过实现IValidatableObject并实现自己的Validate()方法。例如: public class BestModelEver : IValidatableObject { public DateTime? Birthday { get; set; } public IEnumerable<ValidationResult> Validate(ValidationContext val
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");
}
}
}
公共类BestModelEver:IValidatableObject{
公共日期时间?生日{get;set;}
公共IEnumerable验证(ValidationContext ValidationContext){
如果(生日.HasValue){
返回新的ValidationResult(“此处显示错误消息”);
}
}
}
这仍然是在ASP.NET Core中向模型添加自定义验证的推荐方法吗?使用
IValidatableObject
具有System.ComponentModel.DataAnnotations
依赖性。在ASP.NET Core中有两种方法进行自定义模型验证:
- 从
子类化的自定义属性。当您希望将自定义业务逻辑应用于具有属性的特定模型属性时,这非常有用ValidationAttribute
- 实现类级验证的
。当您需要同时对整个模型进行验证时,请使用此选项IValidatableObject
这两个例子都有。在您的情况下,
IValidatableObject
可能是最好的方法。我在他们的文档中寻找一个自定义验证部分,但看起来我没有找到。谢谢