C# Asp.Net core 3.1未将文件绑定到模型内的IFormFile属性
我的控制器中有一个http post请求,该请求采用具有IFormFile属性的模型:C# Asp.Net core 3.1未将文件绑定到模型内的IFormFile属性,c#,api,.net-core,form-data,iformfile,C#,Api,.net Core,Form Data,Iformfile,我的控制器中有一个http post请求,该请求采用具有IFormFile属性的模型: public ActionResult Post([FromForm] PageModel pageModel) { // process data } pageModel类: public class PageModel { public Guid Id { get; set; } public string Title {
public ActionResult Post([FromForm] PageModel pageModel)
{
// process data
}
pageModel类:
public class PageModel
{
public Guid Id { get; set; }
public string Title { get; set; }
public Image ImageModel { get; set; }
}
public class ImageModel
{
public Guid Id { get; set; }
public string Url { get; set; }
public IFormFile Img { get; set; }
public Guid? PageId { get; set; }
}
当我收到pageModel时,所有数据都与预期的一样,即使对于ImageModel属性,如ImgIFormFile的Url和PageId exept,该文件始终为空
当我加上:
var files = Request.Form.Files;
在我的post请求中,文件包含所有缺少的Img文件
它们是将文件直接绑定到IFormFile Img属性的一种方法吗
使用FormData从angular客户端调用api请求。
createPage(pageModel : PageModel): Observable<PageModel> {
var formData = new FormData();
formData.append('title', pageModel .title);
formData.append('[image][pageId]', pageModel.pageId);
formData.append('[image][url]', pageModel .image.url);
formData.append('[image][img]', pageModel .image.img, pageModel.image.img.name);
return this.http.post<PageModel>(this.Url, formData)
.pipe(
catchError(this.handleError)
);
}
createPage(pageModel:pageModel):可观察{
var formData=new formData();
formData.append('title',pageModel.title);
formData.append(“[image][pageId]”,pageModel.pageId);
append(“[image][url]”,pageModel.image.url);
append('[image][img]',pageModel.image.img,pageModel.image.img.name);
返回this.http.post(this.Url,formData)
.烟斗(
catchError(this.handleError)
);
}
您能显示角度代码吗?完成后,我编辑了问题并添加了客户端代码。如果您使用的是ApiControllerAttribute
,则似乎存在此类错误。首先尝试移除它。就像一只虫子什么的。仍然不起作用@bolkay