gpt4 book ai didi

javascript - 添加到表单数据的 JavaScript 对象在服务器上始终接收为 null

转载 作者:太空宇宙 更新时间:2023-11-03 14:38:39 24 4
gpt4 key购买 nike

在前端(附加图像文件和包含产品详细信息的 JavaScript 对象):

 let f = new FormData();
f.append('File', file);

objectToSend = {
...values
};

f.append('ProductDto', objectToSend );

await createProduct(f);

export const createProduct = async data => {
return axiosWrapper.request({
url: `/products`,
method: 'POST',
data: data,
});
};

在后端(接收附加数据作为 FromForm):

// POST: api/products
[HttpPost]
public async Task<IActionResult> Post([FromForm]ProductFile file)
{
// Create product
}

ProductFile 类如下所示:

public class ProductFile
{
public IFormFile File { get; set; }
public ProductDTO ProductDto{ get; set; }
}

问题是 ProductDto 始终为 null,而 File 会按应有的方式填充。我不明白这是为什么?

P.S 我也试过这样附加它:

f.append('ProductDto', JSON.stringify(objectToSend));

干杯

最佳答案

您正在 FormData 中附加一个对象。表单数据接受键值对,其中的值应为描述的字符串 here .

首先尝试将对象转换为字符串

f.append('ProductDto', JSON.stringify(objectToSend) );

然后在您的后端,在访问它之前,将它转换回一个对象。

关于javascript - 添加到表单数据的 JavaScript 对象在服务器上始终接收为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58836383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com