加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 在ASP.NET MVC 3中自定义模型绑定错误消息

发布时间:2020-12-16 10:00:37 所属栏目:asp.Net 来源:网络整理
导读:我正在使用ASP.NET MVC 3和Fluent验证.我希望我的所有错误消息都措辞和格式相同,无论它们是验证错误消息还是模型绑定错误消息. 假设我有以下视图模型: [Validator(typeof(PersonValidator))]public class Person{ [ScaffoldColumn(false)] public int Id {
我正在使用ASP.NET MVC 3和Fluent验证.我希望我的所有错误消息都措辞和格式相同,无论它们是验证错误消息还是模型绑定错误消息.

假设我有以下视图模型:

[Validator(typeof(PersonValidator))]
public class Person
{
    [ScaffoldColumn(false)] public int    Id   { get; set; }
                            public string Name { get; set; }
                            public int    Age  { get; set; }
}

要使用Fluent验证来验证这一点,我可能会使用以下内容:

public class EditorValidator : AbstractValidator<EditorModel>
{
    public EditorValidator()
    {
        RuleFor(model => model.Month.Value).InclusiveBetween(0,120)
    }
}

如果用户输入Age的“abc”,则会导致模型绑定错误,而不是验证错误.这是因为“abc”不是int.系统甚至不会询问“abc”是否在0到120之间,因为“abc”不能存储在Age中.

这很好,很有意义.问题是生成的错误消息是:

The field Age must be a number.

我希望格式化的信息和措辞与Fluent Validation生成的其他错误消息一样.在这种情况下,我想:

‘Age’ must be a number.

我意识到这只是一个微妙的区别,但我想控制模型绑定错误消息.

如何自定义模型绑定错误消息以匹配Fluent验证使用的错误消息?

解决方法

我不确定是否有另一种方法可以做到这一点,但我使用 Data Annotations Extensions,也可以通过NuGet(Install-Package DataAnnotationsExtensions.MVC3)获得这种确切类型的东西.这个包将为您提供一个IntegerAttribute,从那里您可以指定一条错误消息,如下所示:

[Integer(ErrorMessage = "'Age' must be a number.")]
public int Age { get; set; }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读