我的数据库中有一个可以为空的datetime列。
在我的viewmodel中,我将此属性定义如下:
public DateTime? ExpiryDate { get; set; }
在我的控制器编辑方法中,我尝试按如下方式设置此属性的值:
viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
topic.ExpiryDate.Value.ToString("DD MMM YYYY") : null;
但我收到错误:
Cannot implicitly convert type 'string' to 'System.DateTime?'
如果我有以下,即不可为空,它可以正常工作,没有任何错误:
public DateTime ExpiryDate { get; set; }
viewModel.ExpiryDate = topic.ExpiryDate.ToString("DD MMM YYYY")
答案 0 :(得分:3)
这样做:
viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
topic.ExpiryDate.Value : null;
使用此代码.ToString("DD MMM YYYY")
,您将字符串传递给DateTime类型属性。请确保viewModel.ExpiryDate
也是可以为空的DateTime类型,因为您尝试分配空值。