如何在Asp.Net MVC中显示DisplayFormat属性的自定义错误消息?

时间:2012-01-25 02:21:51

标签: asp.net-mvc-3 data-annotations

如何显示

的自定义错误消息
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]

我的模型中的代码如下,

[Display(Name = "When was that document issued?")]
[DataType(DataType.Date, ErrorMessageResourceName = "DocumentIssueDate_DataType",ErrorMessageResourceType = typeof(CustomErrorMessages))]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]
 public DateTime? DocumentIssueDate { get; set; }

在我的视图中,当我在日期文本框中输入201时,出现以下错误消息。如何修改下面的错误消息。

  

值'201'对DocumentIssueDate无效。

2 个答案:

答案 0 :(得分:2)

经过大量研究后,我没有运气。唯一的解决方案是使用RegularExpression

而不是使用:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:d}")]

您可以使用:

[RegularExpression(@"^(3[01]|[12][0-9]|0[1-9])[-/](1[0-2]|0[1-9])[-/][0-9]{4}$", ErrorMessageResourceName = "Date Not Valid")]

RegularExpression与日期格式dd/MM/yyyy匹配。

常规仍然没有测试是,但您可以搜索和编辑,如果需要

答案 1 :(得分:0)

尝试查看答案Here.我认为DisplayFormat不是为验证而设计的,这就是为什么你不能用它来检查输入的字符串是否有效。