如何分配嵌套在Web API 2.0中的LIST类模型

问题描述 投票:0回答:1

我需要帮助来分配列表嵌套 Web Api 2.0:

public HttpResponseMessage Post([FromBody] ZHitung1m respon1)

到目前为止我的代码只能分配第一类模型

我可以分配和打电话

= respon1.DistCode

但不知怎的,我无法分配和调用
= respon1.ProductCode

这是我的模型类 WEB Api :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


namespace WebAPI.Models
{
    public class ZHitung1m
    {
        public string DistCode { get; set; }
        
        public List<ZHitung2m> Row { get; set; }

        public class ZHitung2m
        {
            public string ProductCode { get; set; }
        }

    }
}

这是我的 API 控制器

use HttpResponseMessage Post =

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;
using WebAPI.Models;

namespace WebAPI.Controllers
{
    public class Zhitung1Controller : ApiController
    {

        [HttpPost]
        public HttpResponseMessage Post([FromBody] ZHitung1m respon1)
        {

            var variable1 = respon1.DistCode;

            if (variable1 == "anton")
            {
                respon1.DistCode = "budiman";
            }

            return Request.CreateResponse(HttpStatusCode.OK, respon1);

        }
        }
}

到目前为止我只能分配(

respon1.DistCode
)
如何调用和分配(
respon1.ProductCode
)?

无需更改邮递员中的嵌套结构, 这是我的邮递员结果: want keep nested structure like this

  1. 有人知道打电话和指派吗(
    respon1.ProductCode
    )? 到目前为止我尝试过
public class ZHitung2m : ZHitung1m
{
    public string ProductCode { get; set; }
}

它的改变和破坏了我想要的邮递员结构。

2.

 public class ZHitung1m : ZHitung2m
 {
     public string DistCode { get; set; }
     
     public List<ZHitung2m> Row { get; set; }

 }
 public class ZHitung2m
 {
     public string ProductCode { get; set; }
 }

使用该类模型代码,可以调用assign(

respon1.ProductCode
) 但也改变和打破了我想要的邮递员结构:

postman2

c# nested postman asp.net-web-api2
1个回答
0
投票

让你的模型相互继承似乎根本不像你想要做的,因为它们代表不同的概念,即

ZHitung1m
包含一系列
ZHitung2m
,如果你从另一个继承一个是说
ZHitung1m
ZHitung2m
的一种,反之亦然。

因此不需要继承......然后尝试按照这些方式进行操作(将变量名称更改为描述性名称):

namespace WebAPI.Controllers
{
    public class Zhitung1Controller : ApiController
    {

        [HttpPost]
        public HttpResponseMessage Post([FromBody] ZHitung1m respon1)
        {

            var variable1 = respon1.DistCode;

            if (variable1 == "anton")
            {
                respon1.DistCode = "budiman";
            }

            foreach(var row in respon1.Row)
            {
                var variable2 = row.ProductCode;

                ... do something with variable2 or row here ...
            }

            return Request.CreateResponse(HttpStatusCode.OK, respon1);

        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.