C# Angular2 HTTP Post-命中服务但没有有效负载
我正试图发布到我的后端服务以删除一些记录。现在我可以点击背面的controller方法,但是参数为null。(我们支持的是.NET核心API)。我在开发工具中注意到,当我打电话时,我收到一条204无内容消息 我不确定这是我的后端还是前端的问题 启动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 =>
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)...