我的控制器中有一个 http post 请求,该请求采用具有 IFormFile 属性的模型:
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 时,所有数据都符合预期,即使对于Img IFormFile 的 Url 和 PageId exept 等 ImageModel 属性,它始终为空。
当我添加:
var files = Request.Form.Files;
在我的发布请求中,文件包含所有丢失的Img文件。
他们是一种将文件直接绑定到 IFormFile Img 属性的方法吗?
api 请求是使用 FormData 从 Angular 客户端调用的。
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)
);
}