Назначить формат DateTime с аннотациями данных? - PullRequest
84 голосов
/ 10 марта 2011

У меня есть этот атрибут в моей модели:

[DataType(DataType.DateTime)]
public DateTime? StartDate { get; set; }

Если я хочу отобразить дату или заполнить текстовое поле с датой, у меня есть эти:

<%: Model.StartDate %>

<%: Html.TextBoxFor(m => m.StartDate) %>

Всякий раз, когда отображается дата, она отображается следующим образом: 01/01/2011 12:00:00 AM

Но я бы хотел отобразить только 01/01/2011

Есть ли способ применить формат отображения с аннотациями данных? Я не хочу идти в каждый экземпляр, где я отображаю дату, и добавлять код для ее форматирования.

Ответы [ 10 ]

134 голосов
/ 10 марта 2011

Попробуйте пометить его:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]
38 голосов
/ 30 июля 2011

Вы пробовали это?

[DataType(DataType.Date)]
22 голосов
/ 23 марта 2015

В mvc 4 вы можете легко сделать это следующим образом, используя TextBoxFor ..

@Html.TextBoxFor(m => m.StartDate, "{0:MM/dd/yyyy}", new { @class = "form-control default-date-picker" })

Таким образом, вам не нужно использовать какие-либо аннотации данных в классе модели или представления модели

15 голосов
/ 07 октября 2015

Если ваше поле данных уже является типом данных DateTime, вам не нужно использовать [DataType(DataType.Date)] для аннотации;просто используйте:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:MM/dd/yyyy}")]

в jQuery, используйте указатель даты для своего календаря

    $(document).ready(function () {
        $('#StartDate').datepicker();
    });

в своем HTML, используйте EditorFor помощник:

    @Html.EditorFor(model => model.StartDate)
13 голосов
/ 22 марта 2014

Применить DataAnnotation как:

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]
9 голосов
/ 05 сентября 2015

Используйте это, но это полное решение:

[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]
4 голосов
/ 11 апреля 2015

После комментирования

          // [DataType(DataType.DateTime)] 

Использовать атрибут аннотации данных:

[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MM/yyyy}")]

STEP-7 по следующей ссылке может помочь вам ...

http://ilyasmamunbd.blogspot.com/2014/12/jquery-datepicker-in-aspnet-mvc-5.html

4 голосов
/ 19 июля 2013

Используйте EditorFor вместо TextBoxFor

0 голосов
/ 05 июня 2019

Это работает для меня

[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-mm-yyyy}", ApplyFormatInEditMode = true)]
0 голосов
/ 31 июля 2015

установите вашу собственность, используя приведенный ниже код во время создания модели, я думаю, что ваша проблема будет решена ... и время не отображается в базе данных. Вам не нужно добавлять какие-либо комментарии.

...