仅当文本框为空时如何输入此规则以进行流畅验证
How to enter into this rulefor fluent validation only if textbox is empty
我正在使用简单的表单流畅验证。如何仅在 Notes 文本框为空时输入此规则,如果该 linq 查询 return 是一条记录,则应 return 验证。
如果文本框不为空,则不应输入此规则。
这是我试过的方法
RuleFor(i => i.Notes)
.NotEmpty()
.When((i) =>
{
bool result = false;
result = _DAL.GetExists<EmployeeScheduleTypes>
(q => q.Type == i.Type);
return result;
})
.WithMessage("Notes is required");
当 属性 验证器应为 运行 时,应使用扩展方法 When
来指定条件。在您的情况下,条件不为空 Notes
属性。验证谓词应该转到 Must
extension:
RuleFor(i => i.Notes)
.Must(i => _DAL.GetExists<EmployeeScheduleTypes>(q => q.Type == i.Type))
.When(i => String.IsNullOrEmpty(i.Notes))
.WithMessage("Notes is required");
此规则表示:当 Notes 为空时,对象应具有现有类型,否则为 Notes 设置错误 属性。
我正在使用简单的表单流畅验证。如何仅在 Notes 文本框为空时输入此规则,如果该 linq 查询 return 是一条记录,则应 return 验证。
如果文本框不为空,则不应输入此规则。
这是我试过的方法
RuleFor(i => i.Notes)
.NotEmpty()
.When((i) =>
{
bool result = false;
result = _DAL.GetExists<EmployeeScheduleTypes>
(q => q.Type == i.Type);
return result;
})
.WithMessage("Notes is required");
当 属性 验证器应为 运行 时,应使用扩展方法 When
来指定条件。在您的情况下,条件不为空 Notes
属性。验证谓词应该转到 Must
extension:
RuleFor(i => i.Notes)
.Must(i => _DAL.GetExists<EmployeeScheduleTypes>(q => q.Type == i.Type))
.When(i => String.IsNullOrEmpty(i.Notes))
.WithMessage("Notes is required");
此规则表示:当 Notes 为空时,对象应具有现有类型,否则为 Notes 设置错误 属性。