Я использую VB.NET MVC 5.1 в VS2013 используя RazorДесятичный? - Nullable объект должен иметь значение
siq.Price является Десятичный?
Я пытаюсь проверить, имеет ли значение siq.Price значение, и если да, напечатайте его как валюту. Я получаю эту ошибку при попытке получить доступ к .value свойства для элементов, где правда, они вернулись верно для .HasValue:
Nullable объект должен иметь значение.
Описание: Необработанное исключение возникло во время выполнения текущего веб-запроса. Просмотрите трассировку стека для получения дополнительной информации об ошибке и , где он зародился в коде.
Сведения об исключении: System.InvalidOperationException: Nullable object должен иметь значение.
Я попробовал оба этих строк кода, полагая, что они должны работать без проблем, но получил ошибку выше:
@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.Value.ToString("C")
Что такое 'siq'? Как это определяется? –
Возможный дубликат [VB.NET - IIF (,,) - оцениваются обе «стороны». В каких ситуациях я должен следить?] (Http: // stackoverflow.com/questions/1220411/vb-net-iif-both-sides-are-evaluation-what-situation-should-i-watch-ou) – CodeCaster