我的网站上有一个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区域设置。
请帮助人们
答案 0 :(得分:-1)
尝试使用String类型而不是DateTime。它不是最好的解决方案,但它有效