1

我正在尝试开发一个流畅的验证规则,如果我的TitleIdFK 属性为空,那么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?]*
4

2 回答 2

0

我用FluentValidation的不多,但根据我从文档中了解到的你需要做的

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

代替.When(p => context.RulesFor(p => p.TitleId). *[what here?]*

于 2013-01-18T17:31:08.517 回答
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

希望它可以帮助你。

谢谢。

于 2016-08-24T11:27:10.663 回答