Как я могу форматировать формат datetime в asp.net mvc 4? В режиме отображения он отображается, как я хочу, но в модели редактирования это не так. Я использую displayfor и editorfor и applyformatineditmode = true с dataformatstring = "{0: dd/MM/yyyy}" Что я пробовал:
- глобализация в web.config(оба из них) с моей культурой и еструктуризмом.
- изменение культуры и урологии в application_start()
- пользовательский шаблон для datetime
Я понятия не имею, как заставить его, и мне нужно ввести дату как dd/MM/yyyy, а не по умолчанию.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: моя модель просмотра похожа на это
[DisplayName("date of birth")]
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public DateTime? Birth { get; set; }
Я использую @Html.DisplayFor(m=>m.Birth)
, но это работает как ожидалось (я вижу форматирование)
и ввести дату, которую я использую @Html.EditorFor(m=>m.Birth)
, но если я попытаюсь ввести что-то вроде 13/12/2000, произойдет ошибка с ошибкой, что это не действительная дата (12/13/2000 и 2000/12/13 работают как но мне нужно dd/MM/yyyy).
Пользовательский modelbinder вызывается в application_start() b/c. Я не знаю, где еще.
Используя <globalization/>
, я попытался использовать culture="ro-RO", uiCulture="ro"
и другие культуры, которые дадут мне dd/MM/yyyy.
Я также попытался установить его на основе потока в application_start() (здесь есть много примеров, как это сделать)
Для всего, что прочитает этот вопрос: Кажется, что Дарин Димитров ответ будет работать, пока у меня нет проверки клиента. Другим подходом является использование специальной проверки, включая проверку на стороне клиента. Я рад, что нашел это, прежде чем воссоздать все приложение.