Vous devez définir le bon de la culture dans la mondialisation de l'élément de votre site web.fichier de configuration pour qui dd.MM.yyyy
est un format valide datetime:
<globalization culture="...." uiCulture="...." />
Par exemple, c'est le format par défaut en allemand: de-DE
.
Mise à JOUR:
En fonction de votre exigence dans la section des commentaires que vous souhaitez conserver en-US la culture de l'application, mais toujours utiliser un des formats différents pour les dates. Cela pourrait être réalisé par la rédaction d'un modèle de classeur:
public class MyDateTimeModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var displayFormat = bindingContext.ModelMetadata.DisplayFormatString;
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
if (!string.IsNullOrEmpty(displayFormat) && value != null)
{
DateTime date;
displayFormat = displayFormat.Replace("{0:", string.Empty).Replace("}", string.Empty);
// use the format specified in the DisplayFormat attribute to parse the date
if (DateTime.TryParseExact(value.AttemptedValue, displayFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
return date;
}
else
{
bindingContext.ModelState.AddModelError(
bindingContext.ModelName,
string.Format("{0} is an invalid date format", value.AttemptedValue)
);
}
}
return base.BindModel(controllerContext, bindingContext);
}
}
lequel vous devez vous inscrire en Application_Start
:
ModelBinders.Binders.Add(typeof(DateTime), new MyDateTimeModelBinder());