Ajax datepicker以正确的GB格式发送,但是getModel尝试解析为US格式

时间:2014-12-15 11:28:53

标签: jquery asp.net-mvc datepicker

我的网站上有一个datePicker,我使用该值通过Ajax请求发送到我的ActionResult,它接收到一个viewModel:

public int UserID { get; set; }
    //1-CreatedBy,2 - AssignedTo, 3 - UpdatedBy
    public int UserFilterTypeID { get; set; }
    public int TaskTypeID { get; set; }
    public int TaskStatusID { get; set; }
    public HelperClass.Priority Priority{get; set; }

    // 1-DateCreated 2-DateUpdated
    public int DateTypeID { get; set; }
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime DateFrom { get; set; }
    [DataType(DataType.Date)]
    [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
    public DateTime DateTo { get; set; }

datepicker设置如下

    $('.datepicker').datepicker({
        dateFormat: 'dd/mm/yy',
        changeMonth: true,
        changeYear: true,
        regional: "en-GB"
    });

当检查ajax参数时,dateFrom显示2014年12月18日(2014年12月18日),但是当检查来自viewModel的值时,actionResult dateFrom显示01/01/0001 00:00:000(默认日期)为如果它无法解析日期,因为它期望美国格式,但我在ViewModel中将displayFormat设置为dd / mm / yyyy,并将datepicker设置设置为dd / mm / yy,所以应该在GB区域设置。

请帮助人们

1 个答案:

答案 0 :(得分:-1)

尝试使用String类型而不是DateTime。它不是最好的解决方案,但它有效