我正在使用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,并将语言设置为英式英语。
有人有什么想法吗?它杀了我。