Formattering med DisplayTemplates
Hvis formatteringen fra de innebygde annotasjonene ikke er tilstrekkelig kan vi lage vår egen DisplayTemplate. Alt vi behøver å gjøre er å lage en .cshtml-fil som heter det samme som datatypen og legge den i riktig mappe.
MVC leter etter displaytemplates i Views/Shared/DisplayTemplates.
Views/Shared/DisplayTemplates/DateTime.cshtml:
@model DateTime?
<strong>@Model</strong>
Og vips: datoen er bold.Men nå vises klokkeslettet igjen. Vår nye template tar ikke hensyn til DataType-annoteringen.
Det kan vi heldigvis gjøre noe med:
@using System.ComponentModel.DataAnnotations
@model DateTime?
@if (ViewData.ModelMetadata.DataTypeName == DataType.Date.ToString())
{
if (Model.HasValue)
{
<strong>@Model.Value.ToShortDateString()</strong>
}
}
else
{
<strong>@Model</strong>
}
<= Tilbake