如何通过Angular Post发送含对象数组的UpdateRequest至C#服务器
问题:Angular POST含对象数组的UpdateRequest到C#服务器失败的解决办法
我用Angular的POST请求向C#服务器发送对象,只要对象里不包含Schedule类型数组就一切正常,请问怎么通过POST发送包含其他对象数组的UpdateRequest?
原代码
Angular端代码
export class Account { id: string; firstName: string; lastName: string; schedules: Schedule[] = []; } export class Schedule { id: string; date: Date; availability: boolean; constructor(init?: Partial<Schedule>) { Object.assign(this, init); } } return this.http.post(`${baseUrl}/${id}`, account) .pipe(map((account: any) => { // 更新当前账户(如果已更新) if (account.id === this.accountValue.id) { } return account; }));
C#端代码
控制器方法
[HttpPost("{id:int}")] public ActionResult<AccountResponse> Update(int id, [FromBody]UpdateRequest model) { // 方法逻辑 }
原UpdateRequest定义
public class UpdateRequest { public string FirstName { get; set; } public string LastName { get; set; } public Schedule[] Schedules { get; set; } }
修正方案
1. 新增Schedule中间类
创建专门用于接收请求的UpdateScheduleRequest类,仅保留需要的字段并添加验证规则:
public class UpdateScheduleRequest { [Required] public DateTime Date { get; set; } [Required] public Boolean Availability { get; set; } }
2. 修改UpdateRequest类
将原Schedule[]字段替换为新的UpdateScheduleRequest[]:
public class UpdateRequest { public string FirstName { get; set; } public string LastName { get; set; } public UpdateScheduleRequest[] Schedules { get; set; } }
内容的提问来源于stack exchange,提问作者Janciu
相关产品推荐
相关产品推荐

