首页 > 解决方案 > Web API:POST 数组数据

问题描述

我想将 obj 数组发送到 sql,但我不知道语法是什么。

我已经尝试过本教程,但对我没有任何帮助。 https://www.youtube.com/watch?v=Fe_NKU-UbkI&t=317s (编辑:)也许我真的只是菜鸟,没有得到教程语法的功能。

下面的代码可以工作并在sql上一一发送obj。是的,它不适用于接受数组,这是我的问题,它的语法是什么?我正在使用 GUI MVC 将 obj 发送到我的 sql

//Employee Controller
//POST: api/Employee
[ResponseType(typeof(Employee))]
public async Task<IHttpActionResult> PostEmployee(Employee employee)
{
     db.Employees.Add(employee);
     await db.SaveChangesAsync();
     return CreatedAtRoute("DefaultApi", new { id = employee.GuID }, employee);
}


//Json playing on Insomia Third Party App i just make it to array now so you have an idea what i'm trying to send to my sql.
POST:http://localhost:58482/api/Employee/
[{
    GuID: "1",
    Name: "Vegita",
    Age: "31",
    Address: "Pluto",
},
{
    GuID: "2",
    Name: "San Goku",
    Age: "33",
    Address: "Earth",
}]

将在我的 sql 上发布 obj 数组的工作语法。我是WEBAPI的菜鸟,请温柔,只是想为自己学习复杂的东西,谢谢!

标签: arrayspostasp.net-web-api

解决方案


您可以将 List 员工作为 API 的参数传递

[HttpPost]
    [Route("api/CusActivity/PostEmployee")]
    public async Task<IHttpActionResult> PostEmployee(List<Employee> employee)
    {
        //db.Employees.Add(employee);
        //await db.SaveChangesAsync();
        //return CreatedAtRoute("DefaultApi", new { id = employee.GuID }, employee);
        return null;

    }

在 HTML 中,您可以使用 AJAX 发布数据

 var employees = [
        {
            Name: 'Test1'
        },
        {
            Name: 'Test2'
        }
    ];
    $.ajax({
        url: 'http://localhost:56433/api/CusActivity/PostEmployee',
        type: 'POST',
        data: JSON.stringify(employees),
        dataType: 'json',
        contentType: 'application/json',
        cache: false,
        success: function (data) { console.log(data); }
    });

推荐阅读