.NET Core - 如何上传JSON文件?

问题描述 投票:0回答:3

我试图上传JSON文件,以便从中读取值并将它们保存在数据库中,但我有问题。我的控制器代码如下:

[Produces("application/json")]
[Route("api/[controller]")]
[ApiController]
public class ImportController : ControllerBase
{

    private readonly DatabaseContext dbContext;

    public ImportController(DatabaseContext dbContext)
    {
        this.dbContext = dbContext;
    }

    [HttpPost]
    public IActionResult ImportData(IFormFile file)
    {
        var content = string.Empty;

        using (var reader = new StreamReader(file.OpenReadStream()))
        {
            content = reader.ReadToEnd();
        }

        List<UserModel> userObjects = null;
        try
        {
            userObjects = JsonConvert.DeserializeObject<List<UserModel>>(content);
        }
        catch
        {
            return BadRequest();
        }

        foreach (var user in userObjects)
        {

             UserModel us = new UserModel
             {
                 Username = user.Username,
                 Password = user.Password
             };

             dbContext.User.Add(us);
             dbContext.SaveChanges();
        }

        return Ok();
    }

}

我正在使用Postman发送JSON数据,但无论何时我尝试这样做,我得到以下响应:

{“用户名”:[“输入无效。”]}

当我尝试将JSON数据作为raw-> application / json OR发送时

{“”:[“输入无效。”]}

当我尝试通过表单数据发送它时,使用名为“file”的键和test.json文件作为值。

你能指引我走正确的道路吗?我尝试使用[FromBody] UserModel user作为我的操作的参数,但它只允许我处理一个JSON字符串。

json asp.net-mvc api asp.net-core
3个回答
0
投票

我解决了......我所要做的就是删除[ApiController]属性。具有该属性导致应用程序根本没有访问我的ImportData方法。

© www.soinside.com 2019 - 2024. All rights reserved.