jquery ui datepicker和mvc查看模型types的date时间

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

这是我的看法:

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

和我的脚本:

 $("#dt1").datepicker({ dateFormat: "dd/mm/yy" }); 

一切工作正常,如果我的date<= 12,如果我的date是12,它会告诉我一个validation错误消息说:“字段开始date必须是一个date。 (我正在使用jQueryvalidation)

例如:date16/12/2014会给我的错误,而12/12/2014不会

这是我的观点模型:

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

我怀疑我的视图模型预计date的格式为mm / dd / yyyy,而在我的dateselect器中,我指定了dd / mm / yy,有没有办法告诉我的viewmodel我期待的是dd / mm / yy格式如果date> = 12,它不会抛出错误消息。

你可以看看使用jQuery全球化或添加以下内容到您的脚本(当然假设服务器文化date格式是'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' }); 

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

您将需要创build一个自定义validation器。 你需要修改你的属性,像这样取一个string值

 public string JobStartDate {get; set; } 

然后你将需要像这样创build自定义validation器

 public class CheckDateAttribute : ValidationAttribute { protected override ValidationResult IsValid(object value, ValidationContext validationContext) { // Validate your Date here } } 

在此之后,你将只是装饰你的财产,

 [CheckDate] public string JobStartDate {get; set;} 

这是一个关于自定义validation器的好教程