У меня проблема с передачей массива с использованием AJAX в контроллер.
Ниже приведен SQL снимок экрана со структурой таблицы:
Вот SQL структура таблицы
Вот ВИД
$("body").on("click", "#btnSave", function () {
var items = new Array();
$("#tblItems TBODY TR").each(function () {
var row = $(this);
var item = {};
item.ItemID = row.find("TD").eq(0).html();
item.ProInvoiceNum = row.find("TD").eq(1).html();
item.InvoiceNum = row.find("TD").eq(2).html();
item.ProductNum = row.find("TD").eq(3).html();
item.ItemDiscount = row.find("TD").eq(4).html();
item.ItemAmount = row.find("TD").eq(5).html();
items.push(item);
});
$.ajax({
type: "POST",
url: "/Items/AddItems",
data: JSON.stringify(items),
traditional: true,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (r) {
alert(r + " record(s) inserted.");
}
});
});
Когда я хочу сохранить результат массива JSON, контроллер возвращает добавление 0 записей в БД.
Есть ли вероятность, что, например, "ItemId" должен быть проанализирован, потому что он имеет тип int и является строкой в массиве, верно?
Вот это сообщение Action в CONTROLLER
[HttpPost]
public IActionResult AddItems([FromBody]IEnumerable<Items> items)
{
//Loop and insert records.
foreach (Items item in items)
{
_context.Items.Add(item);
}
int insertedRecords = _context.SaveChanges();
return Json(insertedRecords);
}
Я действительно ценю любую помощь в этом, я пытался исправить это многими способами, но теперь мой мозг заблокирован возможными идеями, чтобы исправить это.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.