2017-02-17 8 views
-1

私はプロジェクトに取り掛かっている間、今日までFluentValidationについて聞いたことがないので、私は問題にぶつかりました。私はFluentValidationを使用して他のフィールドが空の場合、1つのフィールドに検証を適用するにはどうすればよいですか?

RuleFor(x=>x.Company) 
    .NotEmpty() 
    .WithMessage("Company Required"); 
RuleFor(x => x.FirstName) 
    .NotEmpty() 
    .WithMessage(FirstName Required"); 
RuleFor(x => x.LastName) 
    .NotEmpty() 
    .WithMessage("LastName Required"); 

。これを持っていると私が行う必要がある他のRuleFor statements.Whatの束は..です

Companyフィールドが空の場合、姓と名の検証が必要ですが、会社のフィールドがある場合空ではなく、姓と姓にバリデーションを適用しないでください

私はどこから始めたらよいかわかりません。 EDIT

は私がするとの条件を試してみましたが、姓と名の検証をオフに設定しておく必要があり、この

When(x => x.Company == "" || x.Company == null,() => 
    { 
    RuleFor(x => x.FirstName) 
    .NotEmpty() 
    .WithMessage("FirstName Required"); 

    RuleFor(x => x.LastName) 
    .NotEmpty() 
    .WithMessage("LastName Required"); 
    }); 

と私は「考える」を思い付いたが、それはしませんでした。

それから私は、このよう

When(x.Company.length == 0,() => 
    { 
    RuleFor(x => x.FirstName) 
    .NotEmpty() 
    .WithMessage("FirstName Required"); 

    RuleFor(x => x.LastName) 
    .NotEmpty() 
    .WithMessage("LastName Required"); 
    }); 

を試してみましたが、同じことは、姓と名の検証が実現しなかった、起こりました。

+1

【とき/場合を除きと条件を指定する(https://github.com/JeremySkinner/FluentValidation/wiki/d.-Configuring-a-Validator#user-content-specifying-a-condition-with -whenunless) – jmoerdyk

+0

@jmoerdyk、今私はそれを見ています – Chris

+0

私の混乱は、ブールではなく文字列ではいかにして動作するのかを例が示しているので、いつになっていますか? – Chris

答えて

0

最初のWhenステートメントの使用が成功したはずです。これは私のために働いたものです。

When(x => string.IsNullOrWhiteSpace(x.Company),() => { 
    RuleFor(x => x.FirstName) 
     .NotEmpty() 
     .WithMessage("{PropertyName} Required"); 

    RuleFor(x => x.LastName) 
     .NotEmpty() 
     .WithMessage("{PropertyName} Required"); 
}); 
関連する問題