使用 [FromForm] 属性时,集合始终为空

mik*_*gio 6 javascript c# json asp.net-core-mvc asp.net-core

我正在尝试发布FormData包括 aFile和 a Collection

这是我的模型:

public class Content
{
    public string Name { get; set; }
    public string Link { get; set; }
}
public class Model
{
    public IEnumerable<Content> Contents { get; set; }
    public IFormFile File { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这是我的操作:

[HttpPost]
public async Task InsertAsync([FromForm]Model dataPost)
{
    await _services.Create(dataPost);
}
Run Code Online (Sandbox Code Playgroud)

FormData在 JavaScript 中是:

const formData = new FormData();
formData.append("File", myFile, "image.jpg")
formData.append("Contents", arrayOfContent)
Run Code Online (Sandbox Code Playgroud)

这是header

'Content-Type': `multipart/form-data`
Run Code Online (Sandbox Code Playgroud)

“文件”工作正常,但“内容”始终为空。

我哪里错了?谢谢!

huj*_*omi 4

为了进行测试,我使用了以下内容arrayOfContent

var arrayOfContent = [];
arrayOfContent.push({ name: 'test', link: 'test.com' });
arrayOfContent.push({ name: 'test2', link: 'test2.com' });
Run Code Online (Sandbox Code Playgroud)

我使用 for 循环将数组附加到表单数据:

for (var i = 0; i < arrayOfContent.length; i++) {
    formData.append("Contents[" + i + "].Name", arrayOfContent[i].name);
    formData.append("Contents[" + i + "].Link", arrayOfContent[i].link);
}
Run Code Online (Sandbox Code Playgroud)

我在 Visual Studio 中可以看到它可以绑定它:

在此输入图像描述