如何格式化视图中呈现的EPiServer属性的日期?

时间:2014-11-19 18:47:22

标签: asp.net-mvc episerver

我在EPiServer 7.5中工作,部分视图显示新闻文章。在我的NewsArticle类中,有DateUpdated的DateTime属性,在保存文章时会设置该属性。我可以使用PropertyFor方法在局部视图中公开它,如下所示:

@Html.PropertyFor(x => x.DateUpdated)

这将呈现为:11/19/2014 10:21:07 AM

我想要做的是对日期应用特殊格式,以便在上述情况下显示“2014年11月19日”。我尝试将.ToString()的格式附加到@ Html.PropertyFor(),但这不起作用。我考虑过的一个解决方案是在NewsArticle类中添加另一个属性来格式化日期,但我更喜欢在视图中直接格式化它。有没有办法从视图中格式化这个日期?

注意,我可以在视图中执行此操作,但我想知道是否有更简洁的方法:

@model EPiServerExercise.Models.Pages.NewsArticle

@{
    string dateUpdated = Model.DateUpdated.ToString("MMMM d, yyyy");
}

<div class="newsArticleDate">@dateUpdated</div>

似乎应该在@ Html.PropertyFor或类似的东西上重载以简化这一点。感谢。

1 个答案:

答案 0 :(得分:1)

我会在/Views/Shared/DisplayTemplates/DateTime.cshtml中创建一个显示模板,其中包含:

@model DateTime

@Model.ToString("yyyy-MM-dd HH:mm") @* <-- Your date format here *@

然后在其他视图中使用@Html.PropertyFor(p => p.DateUpdated),这些视图将根据名称&#34; DateTime&#34;自动使用此显示模板。您还可以定义其他模板,例如/Views/Shared/DisplayTemplates/DateTimeShort.cshtml:

@model DateTime

@Mode.ToShortDateString()

并使用@Html.DisplayFor(p => p.DateUpdated, "DateTimeShort")

在您的观看中使用它们