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

cdmah0mi  于 2023-10-18  发布在  Postman
关注(0)|答案(1)|浏览(211)

我需要帮助,分配列表嵌套的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)?
不改变嵌套结构在我的 Postman ,这里我的 Postman 结果:

1.有谁知道调用和分配(respon1.ProductCode)?到目前为止,

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

它的变化,打破了 Postman 的结构,我想。
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)还可以改变和破坏我想要的 Postman 结构:

8fsztsew

8fsztsew1#

让你的模型相互继承似乎并不是你想要做的,因为它们代表了不同的概念,即。ZHitung1m包含一个ZHitung2m的列表,如果你从另一个继承一个,你就说ZHitung1mZHitung2m的类型,反之亦然。
所以不需要继承...然后尝试沿着这些行(将变量名更改为描述性的名称):

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);

        }
    }
}

相关问题