Исключение NullReferenceException:Model.get возвращает значение null

#asp.net #.net #asp.net-mvc

#asp.net #.net #asp.net-mvc

Вопрос:

У меня очень странное исключение NullReferenceException. Это странно, потому что страница отображается правильно(с данными) без исключения, пока я не нажму правой кнопкой мышиgt;Проверить страницу, а затем не получу исключение NullReferenceException. Даже я сначала проверяю, является ли CartOrder нулевым или нет, плюс, чтобы убедиться, что у CartOrder есть предметы.

Исключением является отображение в строке if(Модель.CartOrder != ноль) .

 @{   var totalQt = 0;   if(Model.CartOrder != null)  {  if (Model.CartOrder.Count gt; 0)  {  foreach (var item in Model.CartOrder)  {  foreach (var order in item.Orders)  {  totalQt = totalQt   order.Quantity;  }  }  }  }  lt;h3 class="cart-num-of-items"gt;Cart lt;span class="cart-num-counter"gt;(@totalQt items)lt;/spangt;lt;/h3gt;  }  

Ошибка:

 System.NullReferenceException: 'Object reference not set to an instance of an object.'  Microsoft.AspNetCore.Mvc.Razor.RazorPagelt;TModelgt;.Model.get returned null.  

Комментарии:

1. Попробуйте еще раз, добавьте ? в свой если, if(Model?.CartOrder != null)

2. Это решило мою проблему. Модель представления не имеет никаких дополнительных параметров, что может вызвать эту проблему? кстати, спасибо вам!

3. Это потому, что вы CartOrder равны нулю, если это строка , используйте string.IsNullOrEmpty , пример if(string.IsNullOrEmpty(Model?.CartOrder))

4. Но если CartOrder равен нулю, данные отображаться не будут. Однако все данные есть, пока я не попытаюсь просмотреть страницу. Вот почему я сначала пытаюсь проверить, не является ли оно нулевым и . Функция Count() содержит некоторые данные, а затем отображает их. В любом случае, спасибо! 🙂