我有我的ViewModel,我已经定义了我的属性;其中一个是DateTime字段,定义为:
[DisplayName("Data")]
[DataType(DataType.Date)]
[Required(ErrorMessage="Selezionare una data")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}" )]
public DateTime? DtNews { get;set; }
当我提交表单时,我总是收到错误消息“值'13 / 07/2011'对DtNews无效”,因为系统交换了几天和几个月...我需要dd / mm / yyyy格式
答案 0 :(得分:1)
您可以将web.config中的文化设置为某些日期格式为dd/MM/yyyy
的区域性。例如it-IT
的情况:
<globalization culture="it-IT" uiCulture="it-IT"/>
默认情况下,文化设置为auto
。这意味着ASP.NET使用浏览器设置来推断客户端的文化。因此,如果浏览器配置为使用en-US
,则日期格式为MM/dd/yyyy
。
另一种可能性是设置当前线程文化的格式:
var dtfi = (DateTimeFormatInfo)Thread.CurrentThread.CurrentCulture.DateTimeFormat.Clone();
dtfi.ShortDatePattern = "dd/MM/yyyy";
dtfi.DateSeparator = "/";
Thread.CurrentThread.CurrentCulture.DateTimeFormat = dtfi;
Thread.CurrentThread.CurrentUICulture.DateTimeFormat = dtfi;