Ich verwende IValidatableObject Validierung für Entitäten mit z. folgender Code:Warum und wie wird die ASP MVC-Modellüberprüfung für untergeordnete Entitäten repariert, wird jedoch nicht für die übergeordnete Entität aufgerufen?
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) });
}
}
}
In diesem Fall, wenn ich die outerObj bin Validierung, wenn es innerObj zu präsentieren ist es bestätigt nur die innerobj und nicht die outerobj. Es erreicht nicht die outerobj validate-Methode im Falle der Anwesenheit von innerobj.
Ich möchte beide validieren, wenn innenrobj vorhanden. Bitte hilf mir, wie es gemacht wird. Warum validiert das outterobj nicht?