我可以减少这个剃刀代码吗?
<li>
@{
if (@Model.PublicationDate.HasValue) {
@Model.PublicationDate.Value.ToString("D", new System.Globalization.CultureInfo("fr-FR"))
}
else {
@:"pas disponible"
}
}
</li>
我正在尝试这个,但它不起作用:
@{(@Model.PublicationDate.HasValue) ? (@Model.PublicationDate.Value.ToString("D")) : (@:"pas disponible")}
答案 0 :(得分:24)
您可以使用[DisplayFormat]
属性修饰视图模型属性:
[DisplayFormat(DataFormatString = "{0:D}", NullDisplayText = "pas disponible")]
public DateTime? PublicationDate { get; set; }
然后你的观点就变成了:
<li>
@Html.DisplayFor(x => x.PublicationDate)
</li>
所以现在它被简化为一条优雅的线条。
答案 1 :(得分:0)
我假设您可以使用?:
operator来缩短它。如果这是一个好主意是一个不同的问题。
您可能不希望使用new System.Globalization.CultureInfo("fr-FR")
对区域设置进行硬编码,而是使用来自变量或线程当前区域设置的区域设置。