首页 > 解决方案 > Ajax 到 C# 控制器:如何将对象数组与其他数据一起传递

问题描述

我有以下代码:

班级:

public class EngineGroup
{      
    public string CategoryName { get; set; }  
    public OemPart[] ArrOemParts { get; set; }

}

public class OemPart {
    public string IdInDiagram { get; set; }
    public string Sku { get; set; }
    public string OemName { get; set; }
}

控制器:

 public IActionResult Insert(EngineGroup eg){

 }

JavaScript:

            var formData = new FormData();     
            formData.append("CategoryName", groupEngineName);     
            formData.append("ArrOemParts", arrOemParts); // --  >>> this is an array of objects

 $.ajax({
            type: "POST",
            data: formData,
            url: "/Insert",
            dataType: 'json',
            contentType: false,
            processData: false,

当我将 FormData 发送到控制器时,对象数组为空,而其余数据已成功传递给控制器​​。我试图做JSON.stringify(formData)没有运气...

标签: asp.net-mvc

解决方案


 public class OemPart {
        public string IdInDiagram { get; set; }
        public string Sku { get; set; }
        public string OemName { get; set; }
    } 

[HttpPost]
        [IgnoreAntiforgeryToken(Order = 2000)]
        public IActionResult InsertCategoryAndOemPart([FromBody] OemPart[] oemPart, string categoryName)
        {

 $.ajax({
            type: "POST",
            data: JSON.stringify(arrOemParts),
            url: "/admin/engineGroup/InsertCategoryAndOemPart/?categoryName=" + categoryName 
            contentType: 'application/json; charset=utf-8'

推荐阅读