Почему рендеринг данных с помощью viewbag вызывает ошибку? - PullRequest
0 голосов
/ 11 сентября 2018

почему эта ошибка возникает при просмотре бритвы .net mvc

enter image description here

Код контроллера

ViewBag.LowStock = db.StockInformations.Where(x => x.Qty <= x.MinStockLevel);

Просмотр кода

  @{
List<StockInformation> DangerLavel = (List<StockInformation>)ViewBag.LowStock;
var count = 0;
ViewBag.Title = "Create";
}

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Ошибка возникает из-за того, что вы храните DbQuery и пытаетесь получить список .

Код ниже возвращает DbQuery .

db.StockInformations.Where(x => x.Qty <= x.MinStockLevel)

Чтобы исправить это, просто вызовите метод ToList:

db.StockInformations.Where(x => x.Qty <= x.MinStockLevel).ToList();

Метод ToList создаст список на основе DbQuery, возвращенного методом Where.

0 голосов
/ 11 сентября 2018

Поскольку LowStock является запросом, вы не можете привести его к List<StockInformation>. Вместо этого вам следует позвонить ToList() на него:

List<StockInformation> DangerLavel = ViewBag.LowStock.ToList();

Вызов извлекает данные из DbQuery после применения фильтра, создавая список в памяти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...