C# 我能把razor代码减少到几行吗?
我可以减少这个代码吗C# 我能把razor代码减少到几行吗?,c#,visual-studio-2010,asp.net-mvc-3,razor,C#,Visual Studio 2010,Asp.net Mvc 3,Razor,我可以减少这个代码吗 <li> @{ if (@Model.PublicationDate.HasValue) { @Model.PublicationDate.Value.ToString("D", new System.Globalization.CultureInfo("fr-FR")) } else { @:"pas disponible" }
<li>
@{
if (@Model.PublicationDate.HasValue) {
@Model.PublicationDate.Value.ToString("D", new System.Globalization.CultureInfo("fr-FR"))
}
else {
@:"pas disponible"
}
}
</li>
可以使用以下属性装饰视图模型属性:
[DisplayFormat(DataFormatString = "{0:D}", NullDisplayText = "pas disponible")]
public DateTime? PublicationDate { get; set; }
然后你的观点就变成了:
<li>
@Html.DisplayFor(x => x.PublicationDate)
</li>
@DisplayFor(x=>x.PublicationDate)
因此,现在它被简化为一条简洁的线条。我想您可以使用。如果这是个好主意,那是另一个问题
您可能不想使用新System.Globalization.CultureInfo(“fr fr”)硬编码区域设置,但可以使用变量中的区域设置或线程的当前区域设置。我正在考虑使用当前服务器区域设置您会丢失区域设置信息。不管怎么说,它应该放在elese的某个地方。
<li>
@Html.DisplayFor(x => x.PublicationDate)
</li>