Назначить формат DateTime аннотациями данных?

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

[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

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

Ответ 1

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

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

Ответ 2

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

[DataType(DataType.Date)]

Ответ 3

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

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

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

Ответ 4

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

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

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

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

на вашем HTML, используйте EditorFor helper:

    @Html.EditorFor(model => model.StartDate)

Ответ 5

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

[DisplayFormat(DataFormatString = "{0:MMM dd, yyyy}")]

Ответ 6

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

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

Ответ 7

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

Ответ 9

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

private DateTime? dob;
        public DateTime? DOB
        {
            get
            {
                if (dob != null)
                {
                    return dob.Value.Date;
                }
                else
                {
                    return null;
                }

            }
            set { dob = value; }
        }

Ответ 10

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

[DataType(DataType.DateTime)]
[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]

Ответ 11

[ТипДанный (DataType.Date)]  [DisplayFormat (DataFormatString = "{0: MM/dd/yyyy}", ApplyFormatInEditMode = true)]