У меня есть проблема в коде, связанная с печатью отчета о покупках между двумя периодами. Я получаю сообщение об ошибке: @товар.продукты.марка всегда имеет значение null
У меня есть проблема в коде, связанная с печатью отчета о покупках между двумя периодами. Я получаю ошибку: @item.products.ProductName всегда null
При обработке запроса возникло необработанное исключение.
NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
AspNetCore.Views_Reports_reportPurchaseDate.<executeasync>b__13_0() в reportPurchaseDate.cshtml, строка 76
Стек Запрос Куки Заголовки Маршрутизация
NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
AspNetCore.Views_Reports_reportPurchaseDate.<executeasync>b__13_0() в reportPurchaseDate.cshtml
+
@item.products.значение ProductName
Что я уже пробовал:
мой контроллер
public class ReportsController : Controller { private MyDbContext _Context; public ReportsController(MyDbContext Context) { _Context = Context; } protected override void Dispose(bool disposing) { _Context.Dispose(); } public bool getRole() { bool role = false; string group_id = HttpContext.Session.GetString("group_id"); string username = HttpContext.Session.GetString("username"); string Page_Current = HttpContext.Request.Path; var db = _Context.Permission_pages.Where(c => c.group_id.ToString() == group_id && c.page_name == Page_Current).Select(p => p.page_name).ToList(); if (db.Count != 0) { role = true; } else { role = false; } return role; } public ActionResult reportPurchaseDate(DateTime datefrom, DateTime dateto) { bool isrole = getRole(); if (isrole == true) { var rpt = _Context.orderDetails.Where(c => c.masterID.Order_Kind_ID == 1 && c.masterID.DateAdded >= datefrom && c.masterID.DateAdded <= dateto) .Include(c => c.masterID) .Include(c => c.products.ProductName) .ToList(); return View(rpt); } else { return RedirectToAction("noaccess", "HomeController"); } } }
мой взгляд
@model IEnumerable<orderdetails> @{ ViewData["Title"] = "report purchase Date"; Layout = "~/Views/Shared/_Layout.cshtml"; } <h1> Report Purchase</h1> <table class="table"><tbody><tr> <td> </td> <td> Date From </td> </tr> <tr> <td> @Html.TextBox("dateto") </td> <td> Date To </td> </tr> <tr> <td> </td> <td> </td> </tr> </tbody></table> <hr> <hr> <div class="row"> <div class="col-md-12"> <div class="content-panel"> <h4> class="fa fa-angle-right"> Report Purchase </h4> <hr> @foreach (var item in Model) { } <table class="table"><thead> <tr> <td> Product Name </td> <td> Price </td> <td> Quantity </td> <td> Date </td> </tr> </thead> <tbody><tr> <td> @item.products.ProductName </td> <td> @item.Product_Price </td> <td> @item.Product_Quantity </td> <td> @Html.DisplayFor(modelItem => item.masterID.DateAdded) </td> </tr></tbody> </table> </div> </div> </div> @section Scripts { function PrintElem(elem) { Popup($(elem).html()); } function Popup(data) { var myWindow = window.open('', 'my div', 'height=500,width=600'); myWindow.document.write('<html><head><title>my div</title>'); myWindow.document.write('<link rel="stylesheet" href="/lib/bootstrap/css/bootstrap.min.css" type="text/css" />'); myWindow.document.write('</head><body >'); myWindow.document.write(data); myWindow.document.write('</body></html>'); myWindow.document.close(); // necessary for IE >= 10 myWindow.onload = function () { // necessary if the div contain images myWindow.focus(); // necessary for IE >= 10 myWindow.print(); myWindow.close(); }; } }
F-ES Sitecore
Если ProductName имеет значение null, то возникает проблема либо с тем, как соотносятся Ваши таблицы, либо с данными в них. У нас нет доступа ни к тому, ни к другому, так что мы ничем не можем помочь. Используйте SQL Profiler, чтобы точно узнать, какой SQL выполняет ваш код, и перейти оттуда.