私はFluentValidationで入力値を検証しています。私は、値のベースで異なるエラーメッセージに対して-1、-2、-3の整数値を返すデータベースからの値を検証するメソッドを使用しています。メソッドからの戻り値に応じてエラーメッセージを表示する方法私はクラススコープ内の変数を作成し、戻り値を設定し、次の文で私は比較を試み、メッセージを表示しようとしましたが、私は次のステートメントが更新値の前に実行されることを観察します。FluentValidation 1つのプロパティの複数のエラーメッセージ
1つの入力値に対して異なるエラーメッセージを表示します。
たとえば、負の値のエラーメッセージは「負の値は許可されません」、 ユーザが大きい数値を入力した場合、メッセージは「数値が長すぎます」とする必要があります。
ここにコードISValidActionは、入力を検証し、このメソッドが常にtrueを返す変数returnvalueを設定するメソッドです。
int returnvalue = 0;
RuleFor(r => r.action).Must(ISValidAction).WithMessage("Action does not exist in the system.").When(r => !String.IsNullOrEmpty(r.action));
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -2 && returnvalue != -3)).WithMessage("");//for -1
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -1 && returnvalue != -3)).WithMessage("");//for -2
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -1 && returnvalue != -2)).WithMessage("");// for -3
なぜエラーが発生するのかわかりません:「メソッドグループ」から「Func <文字列、ブール>」に変換できません –
どの時点ですか? –
Must()の後に.WithMessage( "{ValidationMessage}")を追加して動作させる必要がありました – serg