0

我正在尝试显示来自 DB 的错误消息,所以这是我到目前为止得到的:

        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)
    ...
4

1 回答 1

-1

您应该使用WhenAsync()而不是When(),请参阅链接

于 2019-08-23T07:15:52.440 回答