我想所以我使用上传使用模型数据的图像文件FromForm
与IFormFile
在Asp.net core
API。
[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel, IFormFile formFile)
{
// Logic here...
}
我在前端使用Angular 7
。我加入模型数据和文件FormData
,并尝试发送,但它总是所有的模型字段的值无效。
解决这个问题的正确方法是什么?
答案 0 :(得分:1)
表单文件必须位于您的AddDataModel
csharp类中。
赞
public class AddDataModel
{
public IFormFile File { get; set; }
// more properties
}
然后在您的角度服务中,执行以下操作
public add(model: AddDataModel): Observable<any> { // file can be passed as parameter or inside typescript model
const formData = new FormData();
// optional you can pass a file name as third parameter
formData.append('file', model.file)
// add more keys to the form-data
return this.http.post<any>('my-http-url', formData);
}
现在更新端点
[HttpPost]
public IActionResult AddData([FromForm] AddDataModel addDataModel)
{
// Logic here...
}
现在,ASP.NET Core的modelbinder将映射从表单数据中检索到的表单文件。
编辑:
在github上添加了一个简单的样本,准备将其克隆。