2013-10-24 48 views
1

當日期屬性在模型被設定爲NULL日期的字符串,這被執行:顯示到位

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

這導致job.JobEnded是1/1/0001 12:00:00上午。

我可以代替使用

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

什麼顯示 「進行中」,而不是 「1/1/0001 12:00:00 AM」。

我試着把一個if/else視圖中,但只能夠顯示一個有效的日期或什麼都沒有。我確定我錯過了一些非常基本的東西,因爲這是我在APS.NET MVC視圖中的第一次嘗試。

回答

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()) 
+0

一行程序會導致編譯器投訴:無法確定條件表達式的類型,因爲'string'和'System.Web.Mvc.MvcHtmlString'之間沒有隱式轉換。 – Metaphor

+0

編輯爲添加.ToString() - Html.DisplayFor(m => item.JobEnded) .ToString() – Metaphor

+0

對不起。是的,那總是在沒有智能感的情況下咬我。 –