显示一个字符串来代替NULL日期

时间:2013-10-24 16:12:19

标签: asp.net-mvc razor razor-declarative-helpers

在模型中设置date属性时,执行:

if (!(rdr["JobEnded"] is DBNull)) { job.JobEnded = (DateTime)rdr["JobEnded"]; }

导致job.JobEnded为1/1/0001 12:00:00 AM。

我可以用什么代替

@Html.DisplayFor(modelItem => item.JobEnded)

显示“进行中”而不是“1/1/0001 12:00:00 AM”。

我尝试在视图中添加if / else,但只能显示有效日期或什么都没有。我确信我错过了一些非常基本的东西,因为这是我第一次尝试APS.NET MVC视图。

1 个答案:

答案 0 :(得分:2)

您在这里处理默认日期,因此要测试它,您需要使用:

@if (item.JobEnded == default(DateTime))
{
    @:In Progress
}
else
{
    @Html.DisplayFor(m => item.JobEnded)
}

或以单行形式:

@((item.JobEnded == default(DateTime)) ? "In Progress" : Html.DisplayFor(m => item.JobEnded).ToString())