我在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或类似的东西上重载以简化这一点。感谢。
答案 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")