我想通过发布将对象列表从javascript发送到控制器方法

我想将对象列表发送到控制器方法,但是控制器中的集合为空。而且我收到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");
            }
        }
mfj111071 回答:我想通过发布将对象列表从javascript发送到控制器方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3115905.html

大家都在问