我有.NET Core后端,它接收DTO作为表单数据。
这是控制者
[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端定义了模型
在这里
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个参数,但得到1.ts(2554)
如何通过表单数据发送DTO?
答案 0 :(得分:1)
您不能在不给它一个字段名称的情况下附加整个对象。如错误所示,它接受2-3个参数,但是您只提供了一个参数而没有给出字段名称。
register(){
const formData = new FormData();
formData.append('regObj', this.registerObject);
}
但是,如果您将每个字段都附加为诸如formdata的值,则很好。
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
}