Fluent Validation で ASP.NET MVC 3 を使用しています。検証エラー メッセージであろうと、モデル バインディング エラー メッセージであろうと、すべてのエラー メッセージの文言と形式を同じにしたいと考えています。
次のビューモデルがあるとしましょう:
[Validator(typeof(PersonValidator))]
public class Person
{
[ScaffoldColumn(false)] public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}
Fluent Validation を使用してこれを検証するには、次のようなものを使用します。
public class EditorValidator : AbstractValidator<EditorModel>
{
public EditorValidator()
{
RuleFor(model => model.Month.Value).InclusiveBetween(0, 120)
}
}
ユーザーが に「abc」を入力すると、検証エラーではなく、モデル バインディング エラーがAge
発生します。これは、「abc」が. 「abc」は に格納できないため、システムは「abc」が 0 から 120 の間であるかどうかを確認することさえありません。int
Age
これは問題なく、理にかなっています。問題は、結果のエラー メッセージが次のようになることです。
フィールド Age は数値でなければなりません。
Fluent Validation によって生成される他のエラー メッセージと同じように、メッセージの形式と文言を変更したいと考えています。この場合、次のことを希望します。
「年齢」は数字でなければなりません。
これは微妙な違いに過ぎないことはわかっていますが、モデル バインディングのエラー メッセージを制御したいと考えています。
モデル バインディングのエラー メッセージをカスタマイズして、Fluent Validation で使用されるエラー メッセージと一致させるにはどうすればよいですか?