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 с нулевым значением, поскольку вы пытаетесь присвоить нулевое значение.

Другие вопросы по тегам