2016-03-03 77 views
0

如何在日期時間列允許空值時使用ToShortDateString()方法?如何在可空的日期時間列上使用ToShortDateString()

我得到這個asp.net代碼<%= Model.EndDate.ToShortDateString() %>以下錯誤:

「System.Nullable」不包含關於「ToShortDateString」和沒有擴展方法的定義「ToShortDateString」接受類型的第一個參數「System.Nullable」可以發現(?是否缺少using指令或程序集引用)

+0

'Model.EndDate.Value.ToShortDateString()'?在訪問它之前一定要檢查'EndDate'是否爲空。 –

回答

5

的corret辦法做到這一點,就像是這個例子:

<%=Model.EndDate.HasValue ? Model.EndDate.Value.ToShortDateString() : string.Empty; %> 

可空值總是暴露一個名爲「Value」的屬性,該屬性包含數據(如果不爲null)以及另一個稱爲「HasValue」的屬性(指示數據是否存在)。

+0

我認爲這是一個不好的做法 - 使用'string.Empty'而不是'null' –

+0

@MikhailNeofitov就是一個例子。 –

0

可爲空DateTime應該如下格式化;

<%= Model.EndDate.HasValue ? 
    Model.EndDate.Value.ToShortDateString() : 
    "Something"%> 
0

你能請嘗試以下,

<%= Model.EndDate != null ? Model.EndDate.ToShortDateString() : "n/a" %> 
0

在С#6你可以編寫如下:

<%= Model.EndDate?.Value.ToShortDateString() %> 

在早期版本的常見做法是

<%= Model.EndDate != null ? Model.EndDate.Value.ToShortDateString() : null %> 
0

你可以試試這個。

<%= Model.EndDate!= DBNull.Value ? Model.EndDate.ToShortDateString() : string.empty %> 

感謝