不能转换表达式类型'void'返回类型'FluentValidation.Results.Val
本文关键字:FluentValidation Results Val 返回类型 void 表达式 不能 转换 类型 | 更新日期: 2023-09-27 18:12:35
这应该不是一个很难回答的问题,但是我无法弄清楚为什么会抛出这个错误。
我有一个验证结果,如果满足一个条件,我试图添加一个失败。
ValidationResult result = new ValidationResult();
//Do not call if nothing is in list.
if (List.Count == 0)
{
ValidationFailure failure = new ValidationFailure("Nothing","Must pick something"){CustomState = ValidationLevel.Critical};
return view.policyResult.Errors.Add(failure);
}
return manager.Validate();
如果有什么特别的请告诉我!如果列表大于0,我添加了返回语句。它只是转到一个管理器,验证并返回验证结果。
Add
不返回任何东西,它是void
方法。你需要调用add,然后返回…无论你想返回什么(也许是你之前创建的failure
对象?)。
。
view.policyResult.Errors.Add(failure);
return failure;
view.policyResult.Errors.Add(failure);
调用没有返回值(void)的Add方法,而调用这一行的方法需要返回FluentValidation.Results.ValidationResult
类型对象的实例
如果ValidationFailure类派生自ValidationResult,那么你可以尝试返回
return failure ;
然而,有可能你的方法没有进入if条件(列表)。计数> 0),我们不知道接下来会发生什么。
同样,这只是一个猜测,但是您希望返回在if
ValidationResult
的result
实例 Add
是c#中的void
方法。为了返回您想要的自定义失败消息,需要调用return
和您创建的失败对象。
正如Steve指出的,有没有可能你没有输入if语句,而是尝试添加
return failure;