You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:57:24