Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jQuery Ajax将对象数组传递到MVC.net核心控制器方法_Javascript_Jquery_Ajax_Asp.net Mvc_Asp.net Core - Fatal编程技术网

Javascript 使用jQuery Ajax将对象数组传递到MVC.net核心控制器方法

Javascript 使用jQuery Ajax将对象数组传递到MVC.net核心控制器方法,javascript,jquery,ajax,asp.net-mvc,asp.net-core,Javascript,Jquery,Ajax,Asp.net Mvc,Asp.net Core,我正在使用.netcore 1.1,Visual studio 2017,Jquery version=“3.2.1” ,我试图让MVC控制器从我的页面获取数据, 我在java中有两个数组,一个是对象数组(模型视图),另一个是字符串数组 对象数组始终返回错误400(错误请求) 2-字符串数组,始终向控制器发送null 我遵循下面的答案,但没有成功 及 下面是我的chtml页面 //#region send data back t oserver $('#Savebt

我正在使用.netcore 1.1,Visual studio 2017,Jquery version=“3.2.1”

,我试图让MVC控制器从我的页面获取数据, 我在java中有两个数组,一个是对象数组(模型视图),另一个是字符串数组

  • 对象数组始终返回错误400(错误请求) 2-字符串数组,始终向控制器发送null
  • 我遵循下面的答案,但没有成功

    下面是我的chtml页面

         //#region send data back t oserver
            $('#Savebtn').click(function () {
                console.log(editedRows);
    
                var UpdatedRows = JSON.stringify({ 'acActivityed': editedRows });
                console.log(UpdatedRows);
    
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "/acActivity/Edit",
                    //traditional: true,   
                    data: UpdatedRows ,
                    dataType: "json",
                    success: function (data) {
                        // here comes your response after calling the server
                        alert('Suceeded');
                    },
                    error: function (jqXHR, textStatus, errorThrown) {
                        alert("error : " + jqXHR.responseText);
                    }
                });
            });
            //#endregion
    
            //#region deleted all selected
            $('#DeleteSelectedbtn').on('click', function () {
                if (confirm("Are you sure to delete All Selected ?????")) {
                    var selectedData = [];
                     var selectedIndexes;
    
                        selectedIndexes = grid.getSelectedRows();
                        jQuery.each(selectedIndexes, function (index, value) {
                            selectedData.push(grid.getDataItem(value).id);
                        });
                        console.log(selectedData);
                        var SelectedIds = selectedData.join(',') ;
                        console.log(SelectedIds);
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "/acActivity/DeleteSelected",
                        data: JSON.stringify({ "ids": SelectedIds }),
                        dataType: "json",
                        success: function (data) {
                            grid.render();
                        },
                        error: function (err) {
                            alert("error : " + err);
                        }
                    });
                }
            });
            //#endregion
    
    两者都有如下控制台快照的数据 所选ID为1

    我的控制器 这个应该是对象列表,并且总是返回错误的请求

        [HttpPost]
        [ValidateAntiForgeryToken]
        //public jsonResult Edit( List<acActivitytbl> acActivityed)
        public ActionResult Edit( List<acActivitytbl> acActivityed)
        {
           foreach (acActivitytbl it in acActivityed)
            {
                logger.Log(LogLevel.Info, it.ID);
                logger.Log(LogLevel.Info, it.Name);
                logger.Log(LogLevel.Info, it.IsActive);
            }
    
    
            //return View(acActivityed);
            return Json(new { success = true, responseText = "end of Page" });
        }
    

    我知道这里缺少了一些东西,但我找不到它,在这方面有什么帮助吗???

    它只是
    数据:UpdatedRows,
    UpdatedRows
    已经是正确的数据)并且您可以删除
    传统:true,
    (这不适用于复杂对象的集合或您的
    contentType
    选项。谢谢,我确实这样做了,但仍然收到相同的错误(400(错误请求))使用浏览器工具检查响应(网络选项卡)要确定错误是什么。在第二个示例中,为什么要获取一个数组,将其连接到
    字符串
    ,然后在控制器中再次将其拆分回来?)对于第二种情况,我尝试了所有的事情,希望一次尝试可以让事情变得更好,所以我尝试将它作为字符串发送到其中一个,并保持原样,在第二种情况下,不需要加入,您可以将字符串id列表发送到控制器列表id,只需
    数据:UpdatedRows,
    UpdatedRows
    您已经有正确的数据了)您可以删除
    traditional:true,
    (这不适用于复杂对象的集合或您的
    contentType
    选项。谢谢,我确实这样做了,但仍然收到相同的错误(400(错误请求))使用您的浏览器工具检查响应(网络选项卡)要确定错误是什么。在第二个示例中,为什么要获取一个数组,将其连接到
    字符串
    ,然后在控制器中再次将其拆分回来?)对于第二个,我尝试了所有的事情,希望一次尝试可以让事情变得更好,所以我尝试将它作为字符串发送到其中一个,并保持原样,在第二个情况下不需要加入,您可以将字符串id列表发送到控制器列表id
    
        public ActionResult DeleteSelected(string ids)
        {
            try
            {
                char[] delimiterChars = { ' ', ',', '.', ':', ' ' };
    
    
                string[] words = ids.Split(delimiterChars, StringSplitOptions.RemoveEmptyEntries);
    
                if (words != null && words.Length > 0)
                {
    
                    foreach (var id in words)
                    {
    
                        bool done = true; //new acActivitiesVM().Delete(Convert.ToInt32(id));
                        logger.Log(LogLevel.Info, " acActivities ID {0} is Deleted Scussefully  ", id);
                    }
                    return Json(new { success = true, responseText = "Deleted Scussefully" });
    
                }
                return Json(new { success = false, responseText = "Nothing Selected" });
            }
            catch (Exception dex)
            {
        ..... removed to save space 
         });
            }
        }