MVC数据类型ErrorMessage

时间:2012-12-17 15:26:30

标签: asp.net-mvc

DataType ErrorMessage不起作用。 MVC4 DataType ErrorMessage似乎不起作用。 我有这个dataannotation属性:

[DataType(DataType.DateTime, ErrorMessage = "Invalid date")]
public override DateTime? BirthDate { get; set; }

但客户端验证会返回此错误:

字段BirthDate必须是日期。

这是Html部分:

 <input Value="" class="date" data-val="true" data-val-date="The field BirthDate  must be a date." data-val-required="El campo Fecha nacimiento es obligatorio" id="Patient_BirthDate" name="Patient.BirthDate" type="text" value="" />

有什么想法吗?

2 个答案:

答案 0 :(得分:8)

在MVC 4上,我能够在View with Html.ValidationMessageFor中更改错误消息。
查看示例:@Html.ValidationMessageFor(model => model.FechaDesde, "Fecha Inválida")

答案 1 :(得分:6)

简答: DataType.DateTime的目的不是验证您的DateTime生日属性条目。这就是原因。它的作用就是在将DateTime显示在视图之前对其进行格式化。

您还需要拥有[Required]属性。

但是,我通常更喜欢使用Jquery Datepicker,它甚至不允许用户输入任何文本,而是输入有效日期。

编辑:当您使用[DataType(DataType.Date)]修饰模型属性时,ASP.NET MVC 4中的默认模板会生成type =“date”的输入字段。支持HTML5的浏览器(例如Google Chrome)会使用日期选择器呈现此输入字段。

您可以使用代码强制执行此操作:

[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? BirthDate { get; set; }

为了正确显示日期,该值必须格式为2012-09-28