我的数据库中有一个可为空的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/