0

は、私は複雑なプロパティを持つクラスを持っています。しかし、私はB型自体を検証したいが、B型をAクラスの一部として検証しない。特定のプロパティを検証から除外します。私は他の人には、タイプのみBタイプを使用しているいくつかのケースでは</p> <pre><code>public class A{ public B Property{ get; set; } } public class B{ public string Name{ get; set; } } </code></pre> <p>:FluentValidation

私はそれらのバリデータ書いた:

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()); 
    } 
} 

をし、それは私の意見の内側に動作します。しかし、空のB.Nameを持つクラスをポストすると、ModelStateは無効です。 ModelStateを有効にする方法ですか?

答えて

0

「B」「Aの一部」は、あなたがそれを伝えない限り実行されません。

B妥当性確認の一部として、 ........あなたがそれを求めるならば起こります。

以下、Boolフラグを使用して、「Bの一部としてのB」をオプションとして作成しました。

public class AValidator : AbstractValidator<A> 
{ 
    public AValidator (bool includeBasAPartOfA) 
    { 

      if(includeBasAPartOfA) 
      { 
        RuleFor(x => x.Property).SetValidator(new BValidator()); 
      } 

    } 
} 
関連する問題

 関連する問題