我想将对象列表发送到控制器方法,但是控制器中的集合为空。而且我收到500 Internal Server Error。我检查了xhr网络,我的请求有效载荷是:{,…}
集合:[{{类别ID:1,页面ID:1,位置X:1,位置Y:1, DimensionX:3,DimensionY:3},…] 0:{categoryID:1,pageID:1, 位置X:1,位置Y:1,维度X:3,维度Y:3} 1: {categoryID:1,pageID:3,positionX:1,positionY:3,dimensionX:3, DimensionY:7} 2:{categoryID:1,pageID:5,positionX:1,positionY: 7,dimensionX:2,dimensionY:9} 3:{categoryID:1,pageID:6, positionX:2,位置Y:7,维度X:3,维度Y:9} 4: {categoryID:1,pageID:7,positionX:3,positionY:1,dimensionX:5, DimensionY:3} 5:{categoryID:1,pageID:8,positionX:3,positionY: 3,dimensionX:5,dimensionY:5} 6:{categoryID:1,pageID:9, positionX:3,positionY:5,维度X:5,维度Y:7} 7: {categoryID:1,pageID:10,positionX:3,positionY:7,DimensionX:4, DimensionY:9} 8:{类别ID:1,页面ID:11,位置X:4,位置Y: 7,dimensionX:5,dimensionY:9}
grid.html
<button type="button" class="button" style="margin-left:400px" onclick="saveChanges()">Save Changes</button>
grid.js
function saveChanges() {
var collection = [];
Array.from(document.querySelectorAll('.grid-container>.icon')).forEach((element) => {
var single = {};
single['categoryID'] = 1;
single['pageID'] = parseInt(element.getAttribute("icon-id"));
var gridArea=element.style.gridArea.split(" / ");
single['positionX']=parseInt(gridArea[0]);
single['positionY'] = parseInt(gridArea[1]);
single['dimensionX'] = parseInt(gridArea[2]);
single['dimensionY'] = parseInt(gridArea[3]);
collection.push(single);
});
var xhr = new XMLHttpRequest();
xhr.open("POST", "PageView/Create", true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify({'collection': collection }));
}
PageViewController.cs
[HttpPost]
public ActionResult Create(List<PageCategoryPageViewModel> collection)
{
try
{
collection.ForEach((x)=>_pageCategoryPageService.CreatePageCategoryPage(x));
return View("Grid");
}
catch
{
return View("Grid");
}
}