在我的Mvc5测试项目中,我有一个具有如下属性的模型:
[Required]
[DisplayName("Codigo Cliente")]
public int ClientCode{ get; set; }
当用户在编辑器中输入特殊字符的字母时,默认的错误消息是:
Codigo Cliente字段必须是数字。
我该如何修改?在这种情况下,我需要更改语言,但如果我想显示更具体的错误,我该怎么办?
我尝试使用DataType
属性但是Enum没有适用于此情况的值(数字)
答案 0 :(得分:3)
使用范围:
http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.rangeattribute.aspx
或使用数据注释扩展程序中的 IntegerOnly
答案 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(),您可以在此处使自定义验证广告使用您的自定义语言消息。