【发布时间】:2011-09-23 04:57:20
【问题描述】:
我正在使用带有 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)
}
}
如果用户为Age 输入“abc”,这会导致模型绑定 错误,而不是验证 错误。这是因为“abc”不是int。系统甚至不会询问“abc”是否介于 0 和 120 之间,因为“abc”不能存储在 Age 中。
这很好,也很有意义。问题是产生的错误信息是:
年龄字段必须是数字。
我希望消息的格式和措辞与 Fluent Validation 生成的其他错误消息一样。在这种情况下,我想:
“年龄”必须是数字。
我意识到这只是一个细微的差别,但我希望能够控制模型绑定错误消息。
如何自定义模型绑定错误消息以匹配 Fluent Validation 使用的错误消息?
【问题讨论】:
标签: asp.net-mvc validation asp.net-mvc-3 model-binding fluentvalidation