Я использую VB.NET MVC 5.1 в VS2013 с помощью Razor
siq.Price является десятичным?
Я пытаюсь проверить, есть ли у siq.Price значение, и если да, то распечатайте его как валюту. Я получаю эту ошибку при попытке доступа к свойству .Value для элементов, где true они вернули true для .HasValue:
Обнуляемый объект должен иметь значение.
Описание: необработанное исключение произошло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительных сведений об ошибке и ее происхождении в коде.
Сведения об исключении: System.InvalidOperationException: объект, допускающий значение NULL, должен иметь значение.
Я попробовал обе эти строки кода, полагая, что они должны работать без проблем, но все же получил ошибку выше:
@IIf(siq.Price.HasValue, siq.Price.Value, "N/A")
'and
@IIf(siq.Price.HasValue, siq.Price.Value.ToString("C"), "N/A")
Как только я удаляю .Value из TruePart, он начинает работать:
@IIf(siq.Price.HasValue, siq.Price, "N/A")
'and
@IIf(siq.Price.HasValue, String.Format("{0:C}", siq.Price), "N/A")
Кто-нибудь может объяснить, почему это происходит ?! Я довольно озадачен.
ПРИМЕЧАНИЕ. Этот фрагмент кода работает сам по себе, если Price имеет значение, но не в IIf ():
@siq.Price.Value.ToString("C")
siq
? Как это определяется? - person Tomas Aschan   schedule 30.09.2014