У меня есть эта модель:DateEdit не работает с форматом дат
[ModelBinder(typeof(DevExpressEditorsBinder))]
public class RegisterViewModel
{
[Required]
[DataType(DataType.Date)]
[Display(Name = "Дата рождения"), DisplayFormat(DataFormatString = "{0:dd.MM.yyyy}", ApplyFormatInEditMode = true)]
public DateTime Birthdate { get; set; }
}
И вид кода:
@*Html.EditorFor(s => s.Birthdate)*@
@Html.DevExpress().DateEditFor(s => s.Birthdate, settings =>
{
settings.Properties.DisplayFormatString = "dd.MM.yyyy";
settings.Properties.EditFormatString = "dd.MM.yyyy";
}).GetHtml()
Первый вариант (который комментировал) отлично работает, но мне нужно использовать DevExpress , И DevExpress DateEdit
отправляет правильное значение, только если я устанавливаю формат MM.dd.yyyy
везде. Else, выход валидатора:
Поле Дата рождения должно быть датой.
Как исправить эту проблему?
Проблема связана с 'jquery.validate.js', который проверяет даты, основанные на формате 'MM/dd/yyyy' (см. [этот ответ] (http://stackoverflow.co m/questions/39677035/date-of-birth-validation-keep-show/39682410 # 39682410) для объяснения). Я не знаком, но я полагаю, что 'DateEditFor()' имеет метод для синтаксического анализа даты, чтобы вы могли использовать решение, подобное [этому ответу] (http://stackoverflow.com/questions/27285458/jquery-ui -datepicker-and-mvc-view-model-type-datetime/27286969 # 27286969) –
Конечно, у него есть. Но я не знал, как установить его для DX DateEdit. –
И спасибо за объяснение, я не знал о 'validate'. –