У меня есть объект Order
, который содержит два атрибута DateTime
с именами LendDate
и ReturnDate
, как показано ниже:
public class Order
{
public DateTime LendDate { get; set; }
public DateTime ReturnDate { get; set; }
}
Я отображаю список этих объектов в виде индекс basi c, автоматически сгенерированный ASP. Net, например:
foreach (var item in Model.orderList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.LendDate)
</td>
<td>
@Html.DisplayFor(modelItem => item.ReturnDate)
</td>
<td>
@Html.ActionLink(ResGlobal.Details, "Details", new { id = item.OrderID })
</td>
</tr>
}
У меня есть шаблон отображения (Views\Shared\DisplayTemplates\DateTime.cshtml
), который должен обеспечить правильный формат для объектов datetime (Я проверил это, изменив формат вокруг, и он отлично работает). Выглядит это так:
@String.Format("{0:dd-MM-yyyy hh:mm tt}", Model.Date)
Проблема здесь в том, что он показывает время даты объекта в качестве правильной даты, но время всегда устанавливается в 12:00.
Я проверил базу данных и отладил код, и правильные даты и время успешно переданы в представление, поэтому почему он настаивает на установке времени в 12:00?
Если я изменяю формат вокруг, я иногда получаю время 00:00 вместо 12:00, что не помогает.
Я могу заставить его отображать правильную дату и время, если я делаю:
<td>
@Html.DisplayFor(modelItem => item.LendDate.Day)-@Html.DisplayFor(modelItem => item.LendDate.Month)-@Html.DisplayFor(modelItem => item.LendDate.Year) @Html.DisplayFor(modelItem => item.LendDate.Hour):@Html.DisplayFor(modelItem => item.LendDate.Minute)
</td>
Что я не считаю хорошим решением, не говоря уже о некрасивом. Это также показывает правильное время, поэтому проблема не в том, что при передаче заказов теряется правильное время.
Я хочу, чтобы представление отображало дд-мм-гггг чч: мм