指定的值不符合所需的格式yyyy-MM-dd

我有一个.Net MVC 5应用程序正在使用数据注释,entity frameworkJQuery的2.1.3和JQuery的UI 1.11.4。

当我使用英国格式“dd / MM / YYYY”呈现inputtypes为date的编辑表单时; 使用Google Chrome时出现以下错误讯息:

指定的值'10 / 10/2001'不符合要求的格式'yyyy-MM-dd'。 jQuery的2.1.3.js:5317

模型

public class MyModel { [Column(TypeName = "date"), DataType(DataType.Date), Display(Name = "My date")] [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")] public string MyDate { get; set; } } 

标记

 <input class="text-box single-line" data-val="true" data-val-date="The field My date must be a date." id="MyDate" name="MyDate" type="date" value="10/10/2001" /> 

该值在input控件中正确设置,但date不显示在浏览器中。 我第一次以为这是jQuery的问题,因为它是出现在jQuery脚本文件,但在IE和Firefoxtesting时,一切工作正常。

然后,我认为这是我在Chrome上的区域设置,因为默认情况下,Chrome认为每个人的英语都在美国,所以我将区域设置更改为英国,但仍然出现同样的问题。

一个简单的解决方法是将我的模型中的格式更改为普通格式,但对于英国用户来说,这是一个小小的外星人。

有没有办法告诉接受date格式在“dd / MM / YYYY”铬?

yyyy-MM-dd (ISO格式)。 这意味着你的DisplayFormatAttribute必须是

 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)] public string MyDate { get; set; } 

或者,您可以使用手动添加格式

 @Html.TextBoxFor(m => m.MyDate, "{0:yyyy-MM-dd}", new { @type = "date" }) 

后面的选项允许您在@Html.DisplayFor()保留DataFormatString = "{0:dd/MM/yyyy}") @Html.DisplayFor()