如何在 ASP.NET Core Web API 中发布对象列表

esa*_*ago 4 c# asp.net-web-api entity-framework-core .net-core

我看过几个教程,其中使用 POST 方法发送 json 对象。

[HttpPost]
public async Task<IActionResult> createEntity([FromBody]Entity entity)
{
    try
    {
         await _repository.Entity.CreateEntityAsync(entity);
         return Ok();
     }
     catch (Exception ex)
     {
          return StatusCode(500, "Internal server error");
      }
}
Run Code Online (Sandbox Code Playgroud)

这可以正确完成工作

现在,如果我想发送:

{ "ID":1, "data":[ { "value1":"xxxx", "value2":"yyyy" }, { "value1":"zzzz", "value2":"wwww" } ] }

如果你能推荐我什么是最好的选择

Tan*_*jel 7

制作一个 DTO 类,如下所示:

public class YourDto
{
   public int ID {get; set;}
   public List<Data> Data {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

哪里Data如下:

public class Data
{
   public string Value1 {get; set;}
   public string Value2 {get; set;}
}
Run Code Online (Sandbox Code Playgroud)

然后在你的 POST 方法中:

[HttpPost]
public async Task<IActionResult> createEntity([FromBody]YourDto yourDto)
{
    try
    {
         // do whatever you want to do with the yourDto object

         return Ok();
    }
    catch (Exception ex)
    {
          return StatusCode(500, "Internal server error");
    }
}
Run Code Online (Sandbox Code Playgroud)