Я использую ASP.NET MVC 3 с Fluent Validation. Я хотел бы, чтобы все мои сообщения об ошибках были сформулированы и отформатированы одинаково, будь то сообщения об ошибках валидации или сообщения об ошибках привязки модели.
Допустим, у меня есть следующая модель вида:
[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» не является int
. Система даже не доходит до вопроса, находится ли «abc» между 0 и 120, потому что «abc» не может быть сохранен в Age
.
Это хорошо и имеет смысл. Проблема в том, что полученное сообщение об ошибке:
Поле Age должно быть числом.
Я бы хотел, чтобы сообщение было отформатировано и сформулировано так же, как и другое сообщение об ошибке, созданное Fluent Validation. В этом случае я бы хотел:
«Возраст» должен быть числом.
Я понимаю, что это лишь небольшая разница, но я хотел бы контролировать сообщения об ошибках привязки модели.
Как настроить сообщения об ошибках привязки модели в соответствии с сообщениями об ошибках, используемыми Fluent Validation?