验证aspnet mvc中的日期

时间:2011-07-12 21:49:10

标签: asp.net-mvc

我有我的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格式

1 个答案:

答案 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;