Ng-file-upload:将数组发送到Web Api?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (143)

使用angularjs 1.3和C#.net核心web api

我有一个用于上传文件的ng-file-upload。当调用upload方法时,我想将一些额外的数据数组传递给upload方法,然后由我的web api方法接收。这是我的ng-file-upload

factory.upload = function (file, myArray) {
    var url = '{0}upload'.format(apiPath)
    return Upload.upload({
        url: url,
        arrayKey: '',
        data: { file: file, myArray: myArray}
    }).then(function (res) {

        return res;
    });
};

以下是我的webapi:

  [HttpPost("upload")]
   public async Task<IActionResult> FileUpload(IFormFile file, List<string> myArray)
   {
        //code
   }

最后这里是我试图传递的数组,上传到我的webapi:

  [
   {
     id: "1",
     name: "steve"
   },
   {
     id: "2",
     name: "adam"
   }
  ]

问题出在我的webapi中,从UI接受数组的myArray参数始终为null。我在网上搜索并提到要添加

 arrayKey: '' 

但仍然不起作用。有什么输入?

提问于
用户回答回答于

对于传递对象数组,您需要定义列表对象以接受参数。

  1. 带有Id/ Nameproperties的ArrayItem 。 public class ArrayItem { public int Id { get; set; } public string Name { get; set; } }
  2. 改变行动 public async Task<IActionResult> FileUpload(IFormFile file, List<ArrayItem> myArray) { return Ok(); }

扫码关注云+社区

领取腾讯云代金券