我的数据库中有一个可为空的datetime列。

在我的视图模型中,我具有如下定义的属性:

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")

最佳答案

做这个:

viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
          topic.ExpiryDate.Value : null;


使用此代码.ToString("DD MMM YYYY"),您将字符串传递给DateTime类型属性。请确保viewModel.ExpiryDate也是可为空的DateTime类型,因为您正试图分配一个空值。

关于c# - C#可为空的DateTime格式错误-无法将类型'string'隐式转换为'System.DateTime?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37853209/

10-13 00:26