2016-03-03 27 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 %> 

感谢

相关问题