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

Web API 2.0嵌套List类模型如何调用并赋值ProductCode

解决Web API 2.0嵌套List模型的属性赋值问题

你当前的核心问题是:respon1本身并没有ProductCode属性,这个属性属于嵌套在Row列表里的ZHitung2m对象,所以直接访问respon1.ProductCode会报错。要操作这个属性,需要通过遍历Row列表中的每个元素来实现,完全不需要修改模型结构(也就不会破坏Postman的请求结构)。

修改后的控制器Post方法代码

[HttpPost]
public HttpResponseMessage Post([FromBody] ZHitung1m respon1)
{
    var variable1 = respon1.DistCode;
    if (variable1 == "anton")
    {
        respon1.DistCode = "budiman";
        
        // 处理嵌套列表中的ProductCode属性
        // 先判断Row是否为空,避免空引用异常
        if (respon1.Row != null && respon1.Row.Any())
        {
            foreach (var rowItem in respon1.Row)
            {
                // 示例1:统一修改所有ProductCode的值
                rowItem.ProductCode = "updated_product_code";
                
                // 示例2:根据原有值条件修改
                // if (rowItem.ProductCode == "old_prod_01")
                // {
                //     rowItem.ProductCode = "new_prod_01";
                // }
            }
        }
    }
    return Request.CreateResponse(HttpStatusCode.OK, respon1);
}

保持原有请求结构的说明

Postman中仍然可以使用原来的嵌套JSON结构发送请求,比如:

{
  "DistCode": "anton",
  "Row": [
    {
      "ProductCode": "prod_001"
    },
    {
      "ProductCode": "prod_002"
    }
  ]
}

模型结构完全没有改动,请求和响应的嵌套格式会和之前保持一致。

关键注意点

  • 必须先判断respon1.Row是否为null或者空列表,否则会触发NullReferenceException;
  • 遍历Row列表时,每个rowItem就是ZHitung2m的实例,可以直接读写它的ProductCode属性。

内容的提问来源于stack exchange,提问作者anto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:13:16