我必须用Angular 7和Asp.net分别发布对象吗?

我必须用Angular 7和Asp.net分别发布对象吗?,asp.net,angular,http-post,Asp.net,Angular,Http Post,我试图将对象发布到服务器,但收到的对象的值为null 后端代码: // Signature public IActionResult Save(string num, string pat, string token, [FromBody]DataCl data, [FromBody]List<items> listItems) // EDIT: Added class public class Object { public List<i

我试图将对象发布到服务器,但收到的对象的值为null

后端代码:

// Signature 

public IActionResult Save(string num, string pat, string token, [FromBody]DataCl data, [FromBody]List<items> listItems)

// EDIT: Added class
    public class Object
    {
        public List<items> listItems { get; set; }
        public DataCl data { get; set; }
    }

// So new signature
public IActionResult Save(string num, string pat, string token, [FromBody]Test test)
// The value is still null
//签名
公共IActionResult保存(字符串编号、字符串pat、字符串标记、[FromBody]DataCl数据、[FromBody]列表项)
//编辑:添加了类
公共类对象
{
公共列表列表项{get;set;}
公共DataCl数据{get;set;}
}
//那么新的签名呢
公共IActionResult保存(字符串编号、字符串pat、字符串标记、[FromBody]测试)
//该值仍然为空
前端代码:

post(num, data, list)
 return this.http.post<any>(url,{data, list}, httpOptions).subscribe()
post(数字、数据、列表)
返回this.http.post(url,{data,list},httpOptions).subscribe()
因此,参数num、pat和token正在接收正确的数据,但表示主体的数据没有接收任何数据-它们为null


只有一个对象可以正常工作-收到了正确的对象,但有两个对象它不再工作,但为什么?前端代码中有什么东西吗?还是后端?

查看以下文章

对于每个操作方法,不要将[FromBody]应用于多个参数。 ASP.NET核心运行时委托读取 请求流到输入格式化程序。一旦请求流 已读,不能再为绑定其他文件而再次读取 [FromBody]参数

不能有两个
FromBody
属性。来自正文的内容只读取一次

{data,list}
是javascript中的一个对象。除非嵌入了多个对象,否则无法在body中发布多个对象

{
   object1: {}
   object2: {}
}
在您的后端代码中:

class WrapperObjectResponse {
    public Object1 = ...
    public Object2 = ...
}
在新签名中,请尝试以下操作:

[Route("save/{num}/{pat}/{token}")]
public IActionResult Save(string num, string pat, string token, [FromBody]Test test)
这样称呼:

return this.http.post<any>(url + '/' + num + '/' + pat + '/' + token + '/',{data: {}, list = []}, httpOptions).subscribe()
返回此.http.post(url+'/'+num+'/'+pat+'/'+token+'/',{data:{},list=[]},httpOptions).subscribe()

因此前端代码是正确的,因为
{data,list}{data:{},list:[{}]
。一个对象和一个对象数组,这是发布的正确形式吗?当然。但是您需要对后端类进行适当的更改,以接受数据属性和列表。也许您可以再次帮助我:我有类测试:
类测试{public data data;public list ListItems;}
?签名也更改为[FromBody]Test,但值仍然为空,但原因是什么?您在asp.net中的签名是什么?您能编辑问题以添加更改的代码吗?我做了。如果您仔细查看,我将不胜感激。