C# 流畅的验证-是否有方法在何时运行异步操作?
我正试图显示来自DB的错误消息,因此这是我目前得到的结果:C# 流畅的验证-是否有方法在何时运行异步操作?,c#,fluentvalidation,C#,Fluentvalidation,我正试图显示来自DB的错误消息,因此这是我目前得到的结果: When(c => c.Type.Equals("new"), async () => { var errors = await _repository.ErrorsRepository.Get(); RuleFor(c => c.AnotherProperty) .NotNull
When(c => c.Type.Equals("new"), async () =>
{
var errors = await _repository.ErrorsRepository.Get();
RuleFor(c => c.AnotherProperty)
.NotNull()
.WithMessage("Must select Yes or No for '" +
$"{errors.FirstOrDefault(l => l.id.Equals("anotherProperty"))?.error}'");
RuleFor(c => c.AnotherProperty2)
.NotNull()
.WithMessage("Must select Yes or No for '" +
$"{errors.FirstOrDefault(l => l.id.Equals("anotherProperty2"))?.error}'");
RuleFor(c => c.AnotherProperty3)
.NotNull()
.WithMessage("Must select Yes or No for '" +
$"{errors.FirstOrDefault(l => l.id.Equals("anotherProperty3"))?.error}'");
});
运行validateAsnc时,出现以下错误:
异步模块或处理程序在异步
行动仍在进行中
我假设这是由于异步操作造成的
编辑运行验证:
...
var validator = new objValidator();
var validationTask = validator.ValidateAsync(obj);
ModelState.Clear();
var result = await validationTask;
result.AddToModelState(ModelState, null);
if (ModelState.IsValid)
...
您应该使用WhenAsync而不是When,请参见如何运行ValidateAsync,代码please@MrinalKamboj,添加了如何运行ValidateAsnc。WhenAsync用于检查异步中的条件,而不是操作,我相信。