C# Angular2 HTTP Post-命中服务但没有有效负载

C# Angular2 HTTP Post-命中服务但没有有效负载,c#,json,angular,angular2-services,C#,Json,Angular,Angular2 Services,我正试图发布到我的后端服务以删除一些记录。现在我可以点击背面的controller方法,但是参数为null。(我们支持的是.NET核心API)。我在开发工具中注意到,当我打电话时,我收到一条204无内容消息 我不确定这是我的后端还是前端的问题 启动post的组件方法: delete(): void { this._contactService.deleteEmail(this.multipleRecords) .subscribe(s =>

我正试图发布到我的后端服务以删除一些记录。现在我可以点击背面的controller方法,但是参数为null。(我们支持的是.NET核心API)。我在开发工具中注意到,当我打电话时,我收到一条204无内容消息

我不确定这是我的后端还是前端的问题

启动post的组件方法:

    delete(): void {
        this._contactService.deleteEmail(this.multipleRecords) 
            .subscribe(s => { this.isSuccessful = s; },
            error => this.errorMessage = <any>error);   
在我的“DeleteEmailRecords”方法中,将json对象反序列化到我需要删除的模型中。但是,它永远不会到达那里,因为我的初始参数emailList为null

我用后端方法尝试了几种不同的方法:

    [HttpPost]
    public bool EmailDelete(string[] emailList)
    {
        return _contactEmails.DeleteEmailRecords(emailList);
    }

    [HttpPost]
    public bool EmailDelete(EmailDeleteModel[] emailList)
    {
        return _contactEmails.DeleteEmailRecords(emailList);
    }
其中,
EmailDeleteModel
是与
IMutlipleDelete
相同的模型,只是在后端调用了不同的名称

最近我尝试了以下方法:

    [HttpPost]
    public bool EmailDelete([FromBody]EmailDeleteModel[] emailList)
    {
        return _contactEmails.DeleteEmailRecords(emailList);
    }
仍然没有遇到我的参数,但是我遇到了方法中的断点

我也尝试了不同的方法来锻炼身体,比如:

JSON.stringinfy(emailList:emailList)~和大量的变体

我还尝试将字符串作为emailList传递:

    let emails: string = "Dog";
    JSON.stringify({ emails})
但204无内容仍然是一个问题

编辑:添加了一个
Console.Log(JSON.stringify({emailList:emails})
(这是我的
IMultipleDelete
)以清晰起见:

    {"emailList":
       [{
         "type":"Personal",
         "envelopeSalutation":"NANCY WALKOWIAK",
         "entityId":40075275,
         "affiliation":1,
         "toDelete":true,
         "accountId":5004528
       }]
    }        
他们只是我错过了什么吗?还是我太离谱了


感谢您的帮助。

将API函数签名更改为以下内容:

EmailDelete([FromBody]MutlipleDelete[] emailList)
[FromBody]
在这里很重要

而且,你可能还想把post通话改回以前的方式

return this._http.post( this.url, JSON.stringify(emails), options)... 

不要将正在传递的值包装在对象中(
{…}

您正在向Api传递字符串化数组,该数组需要字符串。因此,Api将尝试将JSON序列化为字符串,但失败,留下空参数值。可能会将Api参数数据类型更改为
string[]
,看看这是否有帮助。什么是
IMutlipleDelete
,一个字符串?最初我将控制器方法设置为处理对象列表,但我仍然收到错误:
EmailDelete(list-emailList)
然后尝试一个基本数组,而不是列表。类型不匹配可能是问题所在。立即尝试好的。我们可能仍然需要更多关于什么是
MutlipleDelete
的信息。
EmailDelete([FromBody]MutlipleDelete[] emailList)
return this._http.post( this.url, JSON.stringify(emails), options)...