MVC 5 - 更改整数的数据注释错误消息

时间:2014-07-02 15:28:27

标签: asp.net-mvc asp.net-mvc-5 data-annotations unobtrusive-validation

在我的Mvc5测试项目中,我有一个具有如下属性的模型:

[Required]
[DisplayName("Codigo Cliente")]
public int ClientCode{ get; set; }

当用户在编辑器中输入特殊字符的字母时,默认的错误消息是:

Codigo Cliente字段必须是数字。

我该如何修改?在这种情况下,我需要更改语言,但如果我想显示更具体的错误,我该怎么办?

我尝试使用DataType属性但是Enum没有适用于此情况的值(数字)

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:0)

我发现解决此问题的最简单方法是在数据注释模型中使用String with Range属性,如下所示。

    [Required]
    [Range(0, int.MaxValue, ErrorMessage = "Codigo Cliente must be a positive or negative non-decimal number.")]
    [DisplayName("Codigo Cliente")]
    public string ClientCode { get; set; }

在“范围”属性中,您可以指定自定义错误消息。 对于Interger使用int.MaxValue,对于双重使用double.MaxValue就像这样。  我希望这会对你有所帮助。

答案 2 :(得分:-1)

如果要指定消息,则必须使用此

[Required(ErrorMessage = "your message")]

如果你想使用郎。基于消息并不容易。您可以使用多个资源文件(针对您需要的每种语言)并尝试使用扩展DefaultModelBinder的自定义错误绑定器并覆盖方法BindModel(),您可以在此处使自定义验证广告使用您的自定义语言消息。

相关问题