Не удается использовать LINQ-метод в Razor View ASP.Net - PullRequest
0 голосов
/ 10 января 2019

Я называю модель в view.cshtml следующим образом:

@model IEnumerable<Spiirit_Project.Models.Deliverable>

Затем я использую этот LINQ-метод в view.cshtml так:

@{ var a = Model.Where(p => p.deliverable_research_year_id == 169).Count(); }

Когда я запускаю свой проект, возникает ошибка: "Значение не может быть нулевым. Имя параметра: источник ".

Моя таблица «Доставлено» не пуста, но я получаю эту ошибку. Как исправить эту ошибку?

есть мой контроллер:

public ActionResult CreateDeliverable(int? idResearch, int? idBaseline, int? idYear){
ViewBag.IdResearch = idResearch;
ViewBag.IdBaseline = idBaseline;
ViewBag.IdYear = idYear;
ViewBag.Year = db.Deliverable_Research_Years.Find(idYear);
ViewBag.Deliverable = db.Deliverables.ToList();

return View();
}

Ответы [ 2 ]

0 голосов
/ 10 января 2019

@ mjwills скажите мне в комментарии передать модель на просмотр. Поэтому я меняю свой контроллер так:

public ActionResult CreateDeliverable(int? idResearch, int? idBaseline, int? idYear){
ViewBag.IdResearch = idResearch;
ViewBag.IdBaseline = idBaseline;
ViewBag.IdYear = idYear;
ViewBag.Year = db.Deliverable_Research_Years.Find(idYear);

return View(db.Deliverables.ToList());
}

Это работает правильно!

0 голосов
/ 10 января 2019

Попробуйте

@{ var a = Model?.Where(p => p.deliverable_research_year_id == 169).Count() ?? 0; }

Предполагается, что deliverable_research_year_id НЕ является обнуляемым типом.

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