Как визуализировать DateTime в определенном формате в ASP.NET MVC 3? - PullRequest
116 голосов
/ 14 мая 2011

Если у меня в классе модели есть свойство типа DateTime, как я могу отобразить его в определенном формате - например, в формате, который возвращает ToLongDateString()?

Я пробовал это ...

@Html.DisplayFor(modelItem => item.MyDateTime.ToLongDateString())

... что вызывает исключение, поскольку выражение должно указывать на свойство или поле.И это ...

@{var val = item.MyDateTime.ToLongDateString();
  Html.DisplayFor(modelItem => val);
}

..., которое не выдает исключение, но визуализированный вывод пуст (хотя val содержит ожидаемое значение, как я мог видеть в отладчике).

Спасибо за советы заранее!

Редактировать

ToLongDateString является только примером.На самом деле я хочу использовать вместо ToLongDateString собственный метод расширения DateTime и DateTime?:

public static string FormatDateTimeHideMidNight(this DateTime dateTime)
{
    if (dateTime.TimeOfDay == TimeSpan.Zero)
        return dateTime.ToString("d");
    else
        return dateTime.ToString("g");
}

public static string FormatDateTimeHideMidNight(this DateTime? dateTime)
{
    if (dateTime.HasValue)
        return dateTime.Value.FormatDateTimeHideMidNight();
    else
        return "";
}

Итак, я думаю, что не могу использовать атрибут DisplayFormat и DataFormatStringпараметр в свойствах ViewModel.

Ответы [ 15 ]

0 голосов
/ 15 января 2016
@{
  string datein = Convert.ToDateTime(item.InDate).ToString("dd/MM/yyyy");        
  @datein
}
0 голосов
/ 20 апреля 2015

будет отображаться в формате dd/MM/yyyy в вашем представлении

в представлении:

вместо DisplayFor используйте этот код

<td>

@(item.Startdate.HasValue ? item.Startdate.Value.ToString("dd/MM/yyyy") : "Date is Empty")

</td

он также проверяет, является ли значение пустым в столбце даты, если true, то будет отображаться «Дата пуста» или фактическая отформатированная дата из столбца.

Надежда помогает кому-то.

0 голосов
/ 26 апреля 2013

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

@Model.LeadDate.ToString("dd-MMM-yyyy")

@Model.LeadDate.ToString("MM/dd/yy")

Это приведет к следующему формату

26-Apr-2013

04/26/13
0 голосов
/ 07 февраля 2013

если я просто хочу отобразить дату в коротком формате, я просто использую @ Model.date.ToShortDateString (), и она печатает дату в

0 голосов
/ 15 января 2013

Только просмотр файла Настроить, как это. Вы можете попробовать это.

@Html.FormatValue( (object)Convert.ChangeType(item.transdate, typeof(object)), 
                            "{0: yyyy-MM-dd}")

item.transdate это ваши данные типа DateTime.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...