2

我正在使用IValidatableObject驗證具有例如下面的代碼:爲什麼和如何解決ASP MVC模型驗證的子實體被調用,但不是爲父實體?

public class OuterObj : IValidatableObject 
{  
    public int ID { get; set; } 

    public string Name { get; set; } 

    public IEnumberable<InnerObj> InnerObjList { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (this.ID <= 0) 
     { 
      yield return new ValidationResult("", new[] { nameof(this.ID) }); 
     } 
    } 
} 

public class InnerObj : IValidatableObject 
{ 
    public int ID { get; set; } 

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
    { 
     if (this.ID <= 0) 
     { 
      yield return new ValidationResult("", new[] { nameof(this.ID) }); 
     } 
    } 
} 

在當我驗證outerObj這種情況下,當有innerObj目前它僅驗證了innerobj而不是outerobj。它不會達到innerobj存在的外部驗證方法。

我想在innerobj出席時驗證兩者。請幫助我完成它。爲什麼它不驗證outterobj?

回答

相關問題