Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Angular4 http.post.NET核心MVC绑定失败_C#_Asp.net Mvc_Angular_Asp.net Core Mvc - Fatal编程技术网

C# Angular4 http.post.NET核心MVC绑定失败

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

尝试了许多解决方案将对象从Angular4服务传递到c#controller。虽然我确实在服务中接收了对象,但它没有绑定到c#控制器,因此,我接收到null

角度服务:

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将在不影响控制器的情况下退出处理。