在Razor页面中格式化日期



下面是我的代码示例。

<p>Last Performed: @piece.LastPerformed</p>
<p>Last Performed: @(piece.LastPerformed is null ? "unknown" : @piece.LastPerformed.ToString("MM/dd/yyyy"))</p>

第一行产生";最后执行时间:2022年9月12日晚上9:19:20";。

第二行是我试图格式化日期的内容,但如果它保持为未注释的状态,则会产生错误,所以通常我会将其注释掉,直到我能够正确处理代码为止。

感谢您的帮助!

更好的选择是使用null条件和null合并运算符:

<p>Last Performed: @(piece.LastPerformed?.ToString("MM/dd/yyyy") ?? "unknown")</p>

DateTime?Nullable<DateTime>的简写。如果null条件运算符不是null,则可以使用它来调用实际类型的成员,否则返回null。这相当于:

piece.LastPerformed == null) ? null : piece.LastPerformed.Value.ToString(...);

null合并运算符返回第一个非null参数。它相当于:

(arg ==null)?replacement:arg

LastPerformed可以为null,因此需要使用Value属性来获取DateTime值:

<p>Last Performed: @(piece.LastPerformed is null ? "unknown" : @piece.LastPerformed.Value.ToString("MM/dd/yyyy"))</p>

C#可空值类型的文档

相关内容

  • 没有找到相关文章

最新更新