jquery ui datepicker y mvc view model type datetime

Estoy usando jquery datepicker en mi modelo de vista

Aquí está mi vista:

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

y mi guion:

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

Todo funciona bien si mi fecha es <= 12, si mi fecha es superior a 12, me mostrará un mensaje de error de validación que dice "La fecha de inicio del campo debe ser una fecha". (Estoy usando la validación de jquery)

Por ejemplo: la fecha 16/12/2014 me dará el error, mientras que 12/12/2014 no lo hará

Aquí está mi modelo de vista:

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

Sospecho que mi modelo de vista está anticipando una fecha en el formato mm / dd / aaaa mientras que en mi datepicker especifiqué dd / mm / aa, ¿hay alguna manera de decirle a mi modelo que estoy esperando un formato dd / mm / aa así que no arroja un mensaje de error si la fecha es> = 12.

Puede ver el uso de jquery globalize o agregar lo siguiente a su script (asumiendo por supuesto que el formato de fecha de cultivo del servidor es ‘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' }); 

y utilice @Html.ValidationMessageFor(m => m.JobStartDate)

Aquí MVC View Model:

  public DateTime? date { get; set; } 

Esto es para guión:

  $('.DatePickers').datetimepicker({ timepicker: false, format: 'dM-Y', scrollInput: false, closeOnDateSelect: true }); 

evento de pulsación de tecla para selector de fecha de solo lectura

  $(".DatePickers").keypress(function (event) { event.preventDefault(); }); 

Deberá crear un validador personalizado. Necesita modificar su propiedad para tomar un valor de cadena en su lugar como este

 public string JobStartDate {get; set; } 

A continuación, deberá crear su validador personalizado como este

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

Después de esto, solo decorarás tu propiedad como tal:

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

Aquí hay un buen tutorial sobre validadores personalizados