2015-03-09 2 views
1

Я занимаюсь ASP.NET App, и у меня проблемы с datetime.вопрос с DateTime на 01/01/001

Когда я выбираю 31-й марш DateTime, войдите в модель в контроллере 01/01/0001, но когда я выбираю 1-й марш, ошибок нет.

Я хочу использовать этот формат: день/месяц/год, я думаю, DateTime Формат по умолчанию для приложения - месяц/дата/год, и именно поэтому, так как я могу сделать эту работу?

Вот что я сделал:

Модель:

public DateTime dateAudit { get; set; } 

Вид:

<input class="form-controlform-control datefield" id="dateAudit" name="dateAudit" value="@Model.dateAudit.ToString("dd/MM/yyyy")" /> 

$(".datefield").datepicker({ 
       numberOfMonths: 1, 
       dateFormat: 'dd/mm/yy', 
       showTimePicker: false 
      }); 

Контроллер:

[HttpPost] 
     public ActionResult Create(AuditViewModel model) 
      {...} 

конфигурационный файл:

<globalization uiCulture="fr-FR" /> 

01/01/0001 находится в собственности model.date при отправке формы.

Какое должно быть лучшее решение, чтобы иметь правильные даты? Установить глобальную культуру, чтобы использовать такую ​​дату? Что-то другое? Заранее спасибо

+0

Звучит как проблема локализации. У меня был один. Хотя вы указали нужный формат даты. –

+0

Я поставил в файле конфигурации – clement

+0

При отправке дат по проводам я предпочитаю YYYY-mm-dd, так как это можно интерпретировать между культурами США и других стран. –

ответ

0

Вы можете добавить следующий атрибут к вам дату собственности:

[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)] 
public DateTime dateAudit { get; set; } 

Отредактировано:

Я просто заметил еще самое, что может быть добавление к проблеме вы столкнулись:

$(".datefield").datepicker({ 
       numberOfMonths: 1, 
       dateFormat: 'dd/mm/yy',** 
       showTimePicker: false 
      }); 

dateFormat: 'dd/mm/yy' в идеале должно быть dateFormat: 'dd/mm/yyyy'.

Надеюсь, это поможет.

+0

спасибо, но это не сработало, у меня все еще есть 01/01/0001 – clement

+0

Пожалуйста, посмотрите, исправляет ли dateFormat вашу проблему, обновляет мой ответ. –

+0

Спасибо, но MM дает мне «20/March/2015», а не 20/03/2015, но привязка к модели в порядке ... Как я могу использовать 20/03/2015 в пользовательском интерфейсе и сделать работу с привязкой к модели? – clement

-1

Измените mm на MM, потому что это займет минуты вместо месяца.

$(".datefield").datepicker({ 
       numberOfMonths: 1, 
       dateFormat: 'dd/MM/yy', 
       showTimePicker: false 
      }); 
+0

MM дает мне «20/March/2015», а не 20/03/2015 ... но он решает проблему привязки модели ... создавая еще одну проблему, как cna я показываю 20/03/2015 в пользовательском интерфейсе? Спасибо! – clement

+0

http: //api.jqueryui.com/datepicker/# utility-formatDate –

+0

@ Likesch: спасибо, но mm - месяц года (две цифры) делает мою модель связующего crasy – clement

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