我正在尝试开发一个流畅的valiation规则,如果我的TitleId
FK属性为null,则TitleOther
文本字段将成为必填项。我已经尝试了几种流畅表达的组合和顺序,但都无济于事。
这就是我到目前为止所做的事情,如果有人可以帮我把这个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 :(得分:0)
我没有多使用FluentValidation
,但是根据我对docs所了解的内容,你需要做的事情
.When(p => p.TitleId == null)
而不是.When(p => context.RulesFor(p => p.TitleId). *[what here?]*
答案 1 :(得分: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
希望它对你有所帮助。
感谢。