<= Tilbake

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