使用angular2中的文件和布尔值发送表单数据

时间:2017-02-15 05:54:57

标签: asp.net angular

我有一个表单,用户从一组复选框中选择并选择一张图片。我将此表单从angular2前端发送到asp.net核心web api后端。我遇到的问题是,当我发送数据时,只发送图像文件,忽略布尔值中的所有复选框数据。这是我第一次这样做,所以我不确定如何处理它。

以下是我用于将数据添加到表单数据的代码

    var formData = new FormData();

    formData.append('ReturnFaceLandMarks', this.formViewModel.ReturnFaceLandmarks);
    formData.append('ReturnFaceId', this.formViewModel.ReturnFaceId);
    formData.append('age', this.formViewModel.age);
    formData.append('facial_hair', this.formViewModel.facial_hair);
    formData.append('gender', this.formViewModel.gender);
    formData.append('glassed', this.formViewModel.glassed);
    formData.append('head_pose',"false");
    formData.append('smile', "true");
    formData.append('file', this.formViewModel.img);

,这里是帖子请求

 detect(data: any): Promise<any>
  {   
      return this.http.post(this.serverUrl+"face/detect/", data, { headers: this.headers })
          .toPromise()
          .then(response => {
              console.log(response);
          })
          .catch(this.handleError);
  }

文件被发送到我的web api,但我看到的唯一文件是图像文件.Below是我的请求有效负载。 enter image description here

1 个答案:

答案 0 :(得分:0)

我在使用Angular和.Net时遇到了类似的问题

最适合我的解决方案是创建FormData映射到的类(模型),或者使用[FromForm]属性指定Web api控制器方法参数。

public IActionResult Upload(IFormFile file, [FromForm] bool smile) {
   ...
}