验证MVC 3中的非字符串数据类型

时间:2011-10-21 14:10:53

标签: asp.net-mvc-3 validation localization

想象一下,你的模型中有两个字段:

public class MyModel
{
  [Required(ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "DateRequired"]
  public DateTime Date;

  [DataType(DataType.Currency, ErrorMessageResourceType = typeof(Resources.Resource), ErrorMessageResourceName = "NumberError")]
  public decimal Number;
}

我的问题是:如果用户输入无效的日期(如'aaa')或无效的数字(如'bbb'),则标准的jQuery验证消息会启动如下:'字段编号必须是一个数字'(和日期一样)。

如何获取字段的本地化错误消息?我知道我可以将我的字段转换为字符串,然后手动将这些字段转换为相应的数据库字段,但我相信必须有一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

您应该为您的语言加载正确的“messages _ ##。js”文件。例如,当我需要巴西葡萄牙语验证时,我使用: http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/localization/messages_ptbr.js

最后用您的本地化代码替换“ptbr”。当然,您只需获取代码并使用自己的消息即可。