0

Я использую фреймворк Entity 6, MVC 4 и jquery datepicker. Когда заполняются все данные формы и нажимают кнопку отправки, ModelState.IsValid всегда возвращает ложное значение, так как значение jppery datepicker не совпадает с полем проверки модели.Модели MVC 4 не принимают формат даты japery datapicker

в .cshtml файле

----- 
----- 
@Html.TextBoxFor(m => m.Annieversary, new { id = "anudate", @class = "form-control datetimepicker", @placeholder = "Annieversary Date" }) 
----- 
----- 

C# Side

[Required(ErrorMessage = "This field is required")] 

    [DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
    [DataType(DataType.Date, ErrorMessage = "Date required")] 
    public Nullable<System.DateTime> Annieversary { get; set; } 

Я попытался ниже

@Html.TextBoxFor(m => m.Annieversary,"{0:dd/MM/yyyy}", new { id = "anudate", @class = "form-control datetimepicker", @placeholder = "Annieversary" }) 

Это также не совпадает с моделью, всегда возвращают нуль стоимость. Я знаю, что C# принимает только формат «MM/DD/YYYY», но jquery datepicker возвращает формат «DD/MM/YYYY». Как я могу решить эту проблему?

+0

Комментарии не предназначены для расширенного обсуждения; этот разговор был [перемещен в чат] (http://chat.stackoverflow.com/rooms/130937/discussion-on-question-by-merbin-jo-mvc-4-models-not-accept-jquery-datapicker- да). –

ответ

0

Прежде всего, давайте упростим, чтобы он мог работать. Затем вы можете добавить атрибуты, которые вам нужны.

Модель
Обратите внимание, что я использую знак вопроса, чтобы сделать поле Nullable - как я понимаю, вы будете нуждаться в этом:

public DateTime? Anniversary { get; set; } 

Посмотреть
Обратите внимание на datepicker класс, который мы будет использоваться для вызова компонента jQuery UI DatePicker:

@Html.TextBoxFor(m => m.Anniversary, new { @class = "datepicker" }) 

JavaScript
Обратите внимание, что я устанавливаю dateFormat в нужном вам формате. Это помогает, но это не достаточно просто еще:

<script> 
$(function() { 
    $(".datepicker").datepicker({ dateFormat: "dd/mm/yy" }); 
}); 
</script> 

Web.Config
Теперь, вот где происходит волшебство. Вы должны установить культуру своего приложения, чтобы иметь правильный формат даты. Я его установить в pt-BR, который дает один и тот же формат даты необходимо:

<globalization culture="pt-BR" uiCulture="pt-BR"/> 

Это должно сделать это, но это самый простой пример.

Самое важное, что нужно помнить: Формат даты должен всегда соответствовать культуре, которую вы установили в web.config.

 Смежные вопросы

  • Нет связанных вопросов^_^