Répondre à MVC4 DataType.Date EditorFor n'affichera pas la valeur de date dans Chrome, très bien dans IE
Dans le modèle, vous devez avoir le type de déclaration suivant:
[DataType(DataType.Date)]
public DateTime? DateXYZ { get; set; }
OU
[DataType(DataType.Date)]
public Nullable<System.DateTime> DateXYZ { get; set; }
Vous n'avez pas besoin d'utiliser l'attribut suivant:
[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
Au Date.cshtml utilisez ce modèle:
@model Nullable<DateTime>
@using System.Globalization;
@{
    DateTime dt = DateTime.Now;
    if (Model != null)
    {
        dt = (System.DateTime)Model;
    }
    if (Request.Browser.Type.ToUpper().Contains("IE") || Request.Browser.Type.Contains("InternetExplorer"))
    {
        @Html.TextBox("", String.Format("{0:d}", dt.ToShortDateString()), new { @class = "datefield", type = "date" })
    }
    else
    {
        //Tested in chrome
        DateTimeFormatInfo dtfi = CultureInfo.CreateSpecificCulture("en-US").DateTimeFormat;
        dtfi.DateSeparator = "-";
        dtfi.ShortDatePattern = @"yyyy/MM/dd"; 
        @Html.TextBox("", String.Format("{0:d}", dt.ToString("d", dtfi)), new { @class = "datefield", type = "date" })
    } 
}
S'amuser! Cordialement, Blerton