在前端(附加图像文件和包含产品详细信息的 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/