Ошибка в сохранении данных при нажатии на кнопку Создать для сохранения нижнего колонтитула
Проблема
при сохранении данных из контроллера при нажатии кнопки создать для сохранения я получаю ошибку
При обработке запроса возникло необработанное исключение.
NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
WebTabCore.Контроллеры.SalesOrderController.Create(SalesHeader sh) в файле SalesOrderController.cs, строка 37
Заголовки Файлов Cookie Запроса Стека
NullReferenceException: ссылка на объект не установлена на экземпляр объекта.
WebTabCore.Контроллеры.SalesOrderController.Создать(SalesHeader sh) в SalesOrderController.cs
+
foreach (var i in sh.Коммивояжеры)
Данные заголовка не имеют никаких проблем
Модель используется для сохранения
public class SalesHeader { public int SalesOrderNo { get; set; } public int SalesYear { get; set; } public int BranchCode { get; set; } public int SalesType { get; set; } public DateTime SalesDate { get; set; } public int CustomerID { get; set; } public Customer Customers { get; set; } public ICollection<salesfooter> SalesFooters { get; set; } public decimal TotalPrice { get; set; } } on create view i add items to list as following if (isValidItem) { orderItems.push({ SalesLineNo: $('#SalesLineNo').val().trim(), ItemCode: $('#ItemCode').val().trim(), Quantity: parseInt($('#Qunatity').val().trim()), UnitPrice: parseFloat($('#UnitPrice').val().trim()), Total: parseInt($('#Qunatity').val().trim()) * parseFloat($('#UnitPrice').val().trim()) }); when save data i use as following I assign on code below SalesFooters: orderItems //save data $('#submit').click(function () { //validation of order var isAllValid = true; if (orderItems.length == 0) { $('#orderItems').html('<span style="color:red;">Please add order items</span>'); isAllValid = false; } //Save if valid if (isAllValid) { var data = { SalesOrderNo: $('#SalesOrderNo').val().trim(), SalesYear: $('#SalesYear').val().trim(), BranchCode: $('#BranchCode').val().trim(), SalesType: $('#SalesType').val().trim(), SalesDate: $('#SalesDate').val().trim(), CustomerID: $('#CustomerID').val().trim(), TotalPrice: $('#TotalPrice').val().trim(), SalesFooters: orderItems } $(this).val('Please wait...'); $.ajax({ url: '/SalesOrder/Create', type: "POST", data: JSON.stringify(data), dataType: "JSON", contentType: "application/json", success: function (d) { //check is successfully save to database if (d.status == true) { //will send status from server side alert('Successfully done.'); //clear form orderItems = []; $('#SalesOrderNo').val(''); $('#SalesYear').val(''); $('#BranchCode').val(''); $('#SalesType').val(''); $('#SalesDate').val(''); $('#CustomerID').val(''); $('#TotalPrice').val(''); $('#orderItems').empty(); } else { alert('Failed'); } $('#submit').val('Save'); }, error: function () { alert('Error. Please try again.'); $('#submit').val('Save'); } });
Что я уже пробовал:
[HttpPost] public JsonResult Create(SalesHeader sh) { bool status = false; if (ModelState.IsValid) { SalesHeader order = new SalesHeader { SalesOrderNo = sh.SalesOrderNo, SalesType = sh.SalesType, BranchCode = sh.BranchCode,SalesYear=sh.SalesYear,SalesDate=sh.SalesDate,CustomerID=sh.CustomerID }; foreach (var i in sh.SalesFooters) here exception done { SalesFooter sf = new SalesFooter(); sf.SalesLineNo = i.SalesLineNo; sf.ItemCode = i.ItemCode; sf.Quantity = i.Quantity; sf.UnitPrice = i.UnitPrice; sf.Total = i.Total; order.SalesFooters.Add(i); } _repository.Insert(order); status = true; } else { status = false; } return Json (sh); }