簡體   English   中英

將數據作為多部分/表單數據發送

[英]Send data as multipart/form-data

我有 .NET 核心后端,它接收 DTO 作為表單數據。

這是controller

 [HttpPost]
    public async Task<IActionResult> Register([FromForm] RegisterDto model)
    {
        var result = await _authAppService.Register(model);
        if (result.Code == 409)
        {
            return BadRequest();
        }

        return Ok(result.Token);
    }

這是DTO

 public class RegisterDto
{
    [Required]
    public string Email { get; set; }
    [Required]
    public string Password { get; set; }
    [Required]
    public string PasswordConfirmation { get; set; }
    [Required]
    public string FirstName { get; set; }
    [Required]
    public string LastName { get; set; }
    public string GcmToken { get; set; }
}

我需要通過表單數據從 Angular 應用程序發送數據

我在Angular端定義了model

就這個

export class RegisterDto{
Email: string;
Password: string;
PasswordConfirmation: string;
FirstName: string;
LastName: string;

}

這就是我嘗試發送表單數據的方式

register(){
  const formData =  new FormData();
  formData.append(this.registerObject);

}

在 append 方法中我有這個錯誤

預計 2-3 arguments,但得到 1.ts(2554)

如何通過表單數據發送 DTO?

你不能 append 整個 object 不給它一個字段名稱。 正如錯誤所說,它接受 2-3 arguments 但是您只提供一個參數而沒有給它一個字段名稱。

register(){
     const formData = new FormData();
     formData.append('regObj', this.registerObject);
}

但是,如果您將每個字段 append 作為表單數據值,則很好。

formGroup: FormGroup;
formData: FormData;

register() { 
    this.formData.append('Email', this.formGroup.controls.Email.value);
    this.formData.append('Password', this.formGroup.controls.Password.value);
    this.formData.append('FirstName', this.formGroup.controls.FirstName.value);
    this.formData.append('LastName', this.formGroup.controls.LastName.value);

    // call your service and send it
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM