C# Angular4 http.post.NET核心MVC绑定失败
尝试了许多解决方案将对象从Angular4服务传递到c#controller。虽然我确实在服务中接收了对象,但它没有绑定到c#控制器,因此,我接收到null 角度服务:C# Angular4 http.post.NET核心MVC绑定失败,c#,asp.net-mvc,angular,asp.net-core-mvc,C#,Asp.net Mvc,Angular,Asp.net Core Mvc,尝试了许多解决方案将对象从Angular4服务传递到c#controller。虽然我确实在服务中接收了对象,但它没有绑定到c#控制器,因此,我接收到null 角度服务: getShedule(payload: any) { this._http.post("Shedule/GetSchedule", payload) .map(res => res.json()).subscribe((x) => { console.log("call
getShedule(payload: any) {
this._http.post("Shedule/GetSchedule", payload)
.map(res => res.json()).subscribe((x) => {
console.log("callback succes");
});
}
[HttpPost]
public void GetSchedule(object priceScheduleObject)
{
//logic here
}
C#控制器:
getShedule(payload: any) {
this._http.post("Shedule/GetSchedule", payload)
.map(res => res.json()).subscribe((x) => {
console.log("callback succes");
});
}
[HttpPost]
public void GetSchedule(object priceScheduleObject)
{
//logic here
}
欢迎任何帮助。尝试将您的C#controller更改为
[HttpPost]
public void GetSchedule([FromBody] JObject priceScheduleObject)
{ /
[FromBody]
注释允许ASP.NET核心绑定逻辑查看消息正文(而不是发布的表单字段)。
如果您不想与表示JSON数据的JObject交互,可以将数据绑定到如下模型
public class PriceSchedule {
public string Name {get; set;} // just an example, propert names depend on your json
...
}
[HttpPost]
public void GetSchedule([FromBody] PriceSchedule priceScheduleObject)
{ /
您是否尝试使用实际类型的参数,而不是在控制器上使用“对象”?您很可能有一个名为“PriceSchedule”的类,尝试使用该类而不是“object”是的,我也通过PriceScheduleDTO类完成了该操作,但尽管控制器命中,值仍然为空。您的
有效负载对象看起来像什么?您验证过它不是空的吗?好的,下面是结构:`public class PriceScheduleDTO{public int Price{get;set;}public int Deposit{get;set;}public string Plan{get;set;}}`这个结构类似于“payload”的结构吗?您确定有效负载不为null或空吗?您可以发布您的HTTP请求详细信息吗?编辑:尝试使用Fiddler捕获HTTP POST请求。我尝试了此解决方案,得到了“不支持的媒体类型”-甚至没有击中控制器。服务内部是否有需要处理的内容?请检查浏览器开发工具中的请求是否作为内容类型application/json发送,以及请求正文中的json格式是否正确。如果注册的序列化程序无法解析内容(据我所知,JSON是默认注册的,对于XML,您必须进行额外的配置),ASP.NET Core将在不影响控制器的情况下退出处理。