0

Ich habe eine Klasse mit komplexer Eigenschaft:Eine bestimmte Eigenschaft von der Validierung ausschließen. FluentValidation

public class A{ 
    public B Property{ get; set; } 
} 

public class B{ 
    public string Name{ get; set; } 
} 

In einigen Fällen verwende ich nur Typen B, A-Typen in anderen. Aber ich möchte den B-Typ selbst validieren, aber NICHT den B-Typ als Teil der A-Klasse validieren.

Ich schrieb diese Validatoren:

public class BValidator : AbstractValidator<B> 
{ 
    public BValidator() 
    { 
     RuleFor(x => x.Name).NotEmpty(); 
    } 
} 
public class AValidator : AbstractValidator<A> 
{ 
    public BValidator() 
    { 
     RuleFor(x => x.A).Configure(x => x.ClearValidators()); 
    } 
} 

Und es funktioniert in meinem Blick. Aber wenn ich eine Klasse mit leerem B.Name poste, ist der ModelState nicht gültig. Ist es die Art, ModelState gültig zu machen?

Antwort

0

"B" "ein Teil von A" wird nicht ausgeführt, es sei denn, Sie sagen es zu.

B Validierung als Teil von A ........ wird nur passieren, wenn Sie es fragen.

Unten habe ich "B wie ein Teil von A" als optional, über eine Bool-Flagge zu demonstrieren.

Verwandte Themen