jquery ui datepicker和mvc视图模型类型datetime

Min*_*ess 9 asp.net-mvc jquery datetime datepicker viewmodel

我在我的视图模型上使用jquery datepicker

这是我的观点:

@Html.TextBoxFor(o => o.JobStartDate, new { id = "dt1", @class = "input-block-level" })
@Html.ValidationMessage("JobStartDate")
Run Code Online (Sandbox Code Playgroud)

和我的脚本:

$("#dt1").datepicker({ dateFormat: "dd/mm/yy" });
Run Code Online (Sandbox Code Playgroud)

如果我的日期<= 12,一切正常,如果我的日期超过12,它将显示验证错误消息,说"字段开始日期必须是日期".(我正在使用jquery验证)

例如:日期2014年12月16日将给出错误,而12/12/2014将不会

这是我的视图模型:

[Required]
[DataType(DataType.Date)]
[Display(Name = "Start Date")]
public DateTime JobStartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)

我怀疑我的视图模型预期格式为mm/dd/yyyy的日期,而在我的datepicker上我指定了dd/mm/yy,有没有办法告诉我的viewmodel我期待dd/mm/yy格式如此如果日期> = 12,它不会抛出错误消息.

小智 13

您可以查看使用jquery globalize或将以下内容添加到您的脚本中(当然假设服务器文化日期格式为'dd/MM/yyy')

$.validator.addMethod('date', function (value, element) {
  if (this.optional(element)) {
    return true;
  }
  var valid = true;
  try {
    $.datepicker.parseDate('dd/mm/yy', value);
  }
  catch (err) {
    valid = false;
  }
  return valid;
});
$('#dt1').datepicker({ dateFormat: 'dd/mm/yy' });
Run Code Online (Sandbox Code Playgroud)

请使用 @Html.ValidationMessageFor(m => m.JobStartDate)