问题描述
数据类型的ErrorMessage不起作用。
MVC4数据类型的ErrorMessage似乎并没有工作。
我有这个dataannotation属性:
DataType ErrorMessage doesn't work.MVC4 DataType ErrorMessage doesn't seem to work.I have this dataannotation Attribute:
[DataType(DataType.DateTime, ErrorMessage = "Invalid date")]
public override DateTime? BirthDate { get; set; }
但客户端验证这个错误:
but client validation return this error:
本场出生日期必须是最新的。
The field BirthDate must be a date.
这是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="" />
任何想法?
推荐答案
答案很简单:目的 DataType.DateTime
是不是要验证您的生日财产的DateTime
项。就是这个原因。它所做的视图显示它之前只是格式化日期时间。
Short Answer: Purpose of DataType.DateTime
is NOT to validate your DateTime
entry for Birthday property. This is the reason. What it does is just formats the DateTime before displaying it on your view.
您需要的是有 [必需]
最重要的是属性为好。
What you need is to have [Required]
attribute on top of that as well.
然而,我通常preFER使用 的Jquery日期选择器 ,它甚至不允许用户输入任何文字,但有效日期。
However, what i usually prefer to use is Jquery Datepicker and it doesn't even allow user to enter any text, but a valid date.
编辑::当您与装饰 [数据类型(DataType.Date)]
在ASP.NET MVC 4的默认模板生成一个模型属性TYPE =日期的输入字段。支持HTML5这样的谷歌Chrome浏览器,使这个输入域日期选择器。
When you decorate a model property with [DataType(DataType.Date)]
the default template in ASP.NET MVC 4 generates an input field of type="date". Browsers that support HTML5 such Google Chrome render this input field with a date picker.
您可以用code执行本:
You may enforce this with code:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
public DateTime? BirthDate { get; set; }
为了正确地显示日期,该值必须格式化为 2012-09-28
In order to correctly display the date, the value must be formatted as 2012-09-28
这篇关于MVC数据类型的ErrorMessage的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!