2013-01-18 55 views
1

我想開發一個流暢的規則,如果我的TitleId FK屬性爲空,那麼TitleOther文本字段變爲強制。我嘗試了幾種流利表達式的組合和順序,都無濟於事。如何在ASP.NET MVC Fluent驗證中使用'When'方法?

這就是我到目前爲止,如果有人可以請幫助我得到這一個When部分正確的,我會非常感激,並多一點教育。

context.RulesFor(p => p.TitleId).Required(p => p.Message("Title is required.")); 
context.RulesFor(p => p.TitleOther) 
     .Required(p => p.Message("Please provide your other title.")) 
     .Length(0, 50, c => c.Message("Other title may not exceed 50 characters") 
     .When(p => context.RulesFor(p => p.TitleId). *[what here?]* 

回答

0

我沒有用過FluentValidation不多,但是從我的理解docs你需要做的

.When(p => p.TitleId == null)

,而不是.When(p => context.RulesFor(p => p.TitleId). *[what here?]*

0

我在用我的When項目Fluent Validation。我已經使用了1個條件,即比較密碼,如下所示:

RuleFor(u => u.Password).NotEmpty().WithMessage("Please Enter Password"); // Normal checked for non empty 

When(u => !string.IsNullOrEmpty(u.Password) && !string.IsNullOrEmpty(u.ComfirmPassword),() => 
      { 
       RuleFor(u => u.ComfirmPassword).Equal(x => x.Password).WithMessage("Password does not match"); 
      }); // For compare password 

希望它可以幫助你。

謝謝。

相關問題