除非采用美国格式,否则模型中的日期为空

时间:2015-09-20 10:47:37

标签: c# sql-server asp.net-mvc-4 date date-formatting

我正在使用daterangepicker。在我的表格中,我有两个隐藏的字段:

 @Html.HiddenFor(x=> x.Header.StartDate, new {id="startdate"})
 @Html.HiddenFor(x => x.Header.EndDate, new { id = "enddate" })

我还有输入日期的选择:

<input class="input-sm form-control" placeholder="Enter your dates" type="text" name="daterange" value="" />

当用户选择了结束日期时,两个隐藏字段分别填充了开始日期和结束日期。

daterangepicker通过JS管理:

 $(function () {
        $('input[name="daterange"]').daterangepicker({
            locale: {
                format: 'DD/MM/YYYY'
            },
            "autoApply": true
        });

        $('input[name="daterange"]').val('');

        $('input[name="daterange"]').on('apply.daterangepicker', function (ev, picker) {

            var startdate = picker.startDate.format('DD/MM/YYYY');
            var enddate = picker.endDate.format('DD/MM/YYYY');
            $("#startdate").val(startdate);
            $("#enddate").val(enddate);
        });
    });

我的HeaderViewModel看起来像这样(设置格式没有区别):

public class HeaderViewModel
{
    //[DataType(DataType.Date), DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? StartDate { get; set; }

   // [DataType(DataType.Date), DisplayFormat(DataFormatString = "{dd/MM/yyyy}", ApplyFormatInEditMode = true)]
    public DateTime? EndDate { get; set; }
}

如果我选择日期少于12的日期,例如:2015年3月11日,则可行。但是,如果我选择一个日期,比如2015年3月23日,那么它将无效,因为日期无效......它预计会采用美国格式。

我使用的是SQL Server 2012,并将语言设置为英式英语。

有人有什么想法吗?它杀了我。

0 个答案:

没有答案