Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 流畅的验证-是否有方法在何时运行异步操作?_C#_Fluentvalidation - Fatal编程技术网

C# 流畅的验证-是否有方法在何时运行异步操作?

C# 流畅的验证-是否有方法在何时运行异步操作?,c#,fluentvalidation,C#,Fluentvalidation,我正试图显示来自DB的错误消息,因此这是我目前得到的结果: When(c => c.Type.Equals("new"), async () => { var errors = await _repository.ErrorsRepository.Get(); RuleFor(c => c.AnotherProperty) .NotNull

我正试图显示来自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)
    ...

您应该使用WhenAsync而不是When,请参见如何运行ValidateAsync,代码please@MrinalKamboj,添加了如何运行ValidateAsnc。WhenAsync用于检查异步中的条件,而不是操作,我相信。