6

「値xxxはyyyには無効です」という検証メッセージが表示されます。ダブルタイプに間違った値を投稿すると発生します。どうやって変えるのかわからない。

4

2 に答える 2

7

残念ながら、これはFluentValidationがオーバーライドできる機能ではありません。MVCの検証の拡張性モデルは多くの場所でいくらか制限されており、この特定のメッセージをオーバーライドする方法を見つけることができませんでした。

使用できる別のアプローチは、ビューモデルに2つのプロパティを定義することです。1つは文字列として、もう1つはnull許容のdoubleとして定義します。文字列プロパティをMVCバインディングの目的で使用し、doubleプロパティが変換を実行します(可能な場合)。その後、これを検証に使用できます。

public class FooModel {
   public string Foo { get; set; }

   public double? ConvertedFoo {
      get {
          double d;
          if(double.TryParse(Foo, out d)) {
             return d;
          }
          return null;
      }
   }
}


public class FooValidator : AbstractValidator<FooModel> {
   public FooValidator() {
      RuleFor(x => x.ConvertedFoo).NotNull();
      RuleFor(x => x.ConvertedFoo).GreaterThan(0).When(x => x.ConvertedFoo != null);
   }
}
于 2011-09-15T14:12:02.460 に答える
0

このメソッドを使用して.WithMessage()、エラーメッセージをカスタマイズできます。

RuleFor(x => x.Foo)
    .NotEmpty()
    .WithMessage("Put your custom message here");

また、リソースでローカライズされたメッセージを使用する場合:

RuleFor(x => x.Foo)
    .NotEmpty()
    .WithLocalizedMessage(() => MyLocalizedMessage.FooRequired);
于 2011-09-14T20:51:12.510 に答える