0

这应该不是一个难以回答的问题,但我一生都无法弄清楚为什么会抛出这个错误。

我有一个验证结果,如果遇到条件,我会尝试添加失败。

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,我添加了 return 语句。它只是转到经理,验证并返回验证结果。

4

3 回答 3

1

Add不返回任何东西,它是一种void方法。您需要调用 add 然后返回...无论您想返回什么(可能是failure您之前创建的对象?)。

IE

view.policyResult.Errors.Add(failure);
return failure;
于 2013-05-07T18:25:32.097 回答
0

线

 view.policyResult.Errors.Add(failure);

调用没有返回值 (void) 的方法 Add,而调用此行的方法需要返回类型对象的实例FluentValidation.Results.ValidationResult

如果类 ValidationFailure 派生自 ValidationResult 那么您可以尝试返回

  return failure ;

但是,您的方法可能没有进入 if 条件 (List.Count > 0),我们不知道接下来会发生什么。
同样,只是一个猜测,但你想返回if 之前声明的result实例ValidationResult

于 2013-05-07T18:25:21.547 回答
0

AddvoidC# 中的一种方法。为了返回您想要的自定义失败消息,您需要调用return您创建的失败对象。

正如史蒂夫指出的那样,您是否可能没有输入 if 语句但尝试添加

return failure;
于 2013-05-07T18:35:56.537 回答