3

我的控制器中有一个 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)
            );
    }
4

0 回答 0