I'm working in EPiServer 7.5 with a partial view that displays news articles. In my NewsArticle class there is a DateTime property of DateUpdated which gets set when an article is saved. I'm able to expose this in the partial view using the PropertyFor method, like so:
@Html.PropertyFor(x => x.DateUpdated)
This gets rendered as: 11/19/2014 10:21:07 AM
What I would like to do is apply special formatting to the date, so that in the above case it would display "November 19, 2014". I tried appending .ToString() with a format to the @Html.PropertyFor(), but that did not work. One solution that I've considered is adding another property to the NewsArticle class which formats the date, but I would prefer to format it directly in the view. Is there a way to format this date from within the view?
Note, I am able to do this in the view, but I'm wondering if there is a more succinct way:
@model EPiServerExercise.Models.Pages.NewsArticle
@{
string dateUpdated = Model.DateUpdated.ToString("MMMM d, yyyy");
}
<div class="newsArticleDate">@dateUpdated</div>
It just seems there should be an overload on @Html.PropertyFor, or something similar, to streamline this. Thanks.
I would create a display template in /Views/Shared/DisplayTemplates/DateTime.cshtml containing:
And then use
@Html.PropertyFor(p => p.DateUpdated)
in your other views which will automatically use this display template based on the name "DateTime". You can also define other templates like /Views/Shared/DisplayTemplates/DateTimeShort.cshtml:and use them in your views with
@Html.DisplayFor(p => p.DateUpdated, "DateTimeShort")