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