C# Nullable DateTime Formatting Error - Невозможно неявно преобразовать тип 'string' в 'System.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")
1 ответ
Сделай это:
viewModel.ExpiryDate = topic.ExpiryDate.HasValue ?
topic.ExpiryDate.Value : null;
С этим кодом .ToString("DD MMM YYYY")
, вы передаете строку в свойство типа DateTime. Пожалуйста, убедитесь, что viewModel.ExpiryDate
также является типом DateTime с нулевым значением, поскольку вы пытаетесь присвоить нулевое значение.