在存储库中,我将可空字符串" o.Attribute("PreorderLanchDate")"
转换为nullable datetime
。
以下是代码:
PreorderLanchDate = o.Attribute("PreorderLanchDate") == null ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value),
在控制器上,launchdate是可空的,没有获取值,因为它显示空值异常。 这是代码:
LaunchDate = (DateTime)product.PreorderLanchDate
答案 0 :(得分:2)
试试这个。
//along with the null reference check, Use `String.IsNullOrEmpty` to check o.Attribute("PreorderLanchDate").Valuen
PreorderLanchDate = o.Attribute("PreorderLanchDate") == null || String.IsNullOrEmpty(o.Attribute("PreorderLanchDate").Value) ? (DateTime?)null : DateTime.Parse(o.Attribute("PreorderLanchDate").Value),
//Cast to a nullable DateTime
LaunchDate = (DateTime?)product.PreorderLanchDate
答案 1 :(得分:1)
product.PreorderLaunchDate
是可以为空的DateTime
,如果它的值为null
,您将获得将其转换为正常DateTime
的异常。
答案 2 :(得分:0)
您可以使用as运算符在兼容的引用类型或可空类型之间执行某些类型的转换。
var nullableDateTime = product.PreorderLanchDate as DateTime;
if ( nullableDateTime != null )
LaunchDate = nullableDateTime;