2015-07-27 3 views
0

У меня есть класс, который имеет атрибут, который может быть нулевым или установленным для даты времени. I для этого атрибута я создал поле типа Date time, которое может быть null или Date time value. Я не могу проверить, где дата установлена ​​или нет. Внутри класса модели У меня есть атрибут DateTime с нулевым значением.Nullable object должен иметь значение в MVC4

public DateTime? CollectionDate { get; set; } 

На мой взгляд, я проверяю, установлено ли значение для любого значения или как это.

if(Model.CollectionDate.Value!=null){ 
     DateTime test = Model.CollectionDate.Value; 
    } 

Но когда я загружаю просмотр, я даю мне исключение. Объект Nullable должен иметь значение. , как я могу проверить в котором дата установлена ​​до или не

ответ

5

попробовать

if(Model.CollectionDate.HasValue) 
+0

альтернатива 'Model.CollectionDate! = Null' работает также – MushinNoShin

+0

Я согласен с вами, что это альтернативный способ сделать это. Однако в конце дня компилятор заменяет это с помощью HasValue и IMO, он помогает с удобочитаемостью. – Gustavo

+2

Полностью согласен. Тем не менее, иногда я нахожу '! Model.CollectionDate.HasValue' не столь очевидным, как' Model.CollectionDate == null'. Во всяком случае, я просто указывал это на пользу OP. – MushinNoShin

3

Используйте .HasValue

if(Model.CollectionDate.HasValue){ 
    DateTime test = Model.CollectionDate.Value; 
} 

также, вы можете установить значение по умолчанию с

DateTime test = Model.CollectionDate ?? DateTime.Now; 

без подтверждения, если он имеет значение.