You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DateTime空值验证:如何判断默认值并实现视图内容切换显示

解决DateTime默认值判断问题

你遇到的问题根源在于DateTime是值类型,它永远不会为null,未赋值时会自动被初始化为DateTime.MinValue(也就是你调试时看到的1/1/0001 12:00:00),所以原来通过判断字符串是否为空的逻辑完全不生效。

直接和DateTime.MinValue对比就能准确识别这个默认值状态,下面是修改后的代码:

方法1:修改原有if-else逻辑

grid.Column("edited_on", "Edited On", format: (item) =>
{
    if (item.edited_on != DateTime.MinValue)
    {
        return Html.Raw(string.Format("{0:dd-MMM-yyyy}", item.edited_on));
    }
    else
    {
        return Html.Raw("Unavailable");
    }
}),

方法2:用三元运算符简化代码

如果想让代码更简洁,可以用三元表达式替代if-else:

grid.Column("edited_on", "Edited On", format: (item) =>
    Html.Raw(item.edited_on != DateTime.MinValue 
        ? string.Format("{0:dd-MMM-yyyy}", item.edited_on) 
        : "Unavailable")
),

额外建议

如果你的数据模型允许修改,建议把edited_on字段改成可空DateTime类型(DateTime?),这样未赋值时字段值就是null,后续判断可以直接用item.edited_on.HasValue,逻辑会更直观:

grid.Column("edited_on", "Edited On", format: (item) =>
    Html.Raw(item.edited_on.HasValue 
        ? string.Format("{0:dd-MMM-yyyy}", item.edited_on.Value) 
        : "Unavailable")
),

内容的提问来源于stack exchange,提问作者gudeThings

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 07:55:32