WebAPI后端C#如何接收JSON数据?如何在C#中的WebAPI后端接收JSON数据?我从我的javascript前端发送以下JSON。{"User_Id":1,"TotalPrice":35,"DeliveryAddress":"在我家","CartItems":[{"Id":1009,"Name":"Supermanjuni2014","Quantity":1,"Price":35}]}我有这个类:publicclassPurchaseOrder{publicListCartItems{get;放;}publicstringDeliveryAddress{得到;放;}publicintTotalPrice{得到;放;}publicintUser_Id{得到;放;}}publicclassCartItem{publicintId{get;放;}公共字符串名称{得到;放;}publicint数量{get;放;}publicintPrice{得到;放;}}我的WebAPI方法:[System.Web.Mvc.HttpPost]publicboolAddOrder(PurchaseOrderorder){//这里我会做一些事情returntrue;对于我的“PurchaseOrder订单”对象,我只得到“null”。问题是我是否使用[System.Web.Mvc.HttpPost]?我也试过[System.Web.Http.HttpPost]但得到了相同的结果。//Martin你的请求的Content-Type应该是"application/json"如果你在请求的文本中发布json而不是将方法签名更改为[HttpPost]publicboolAddOrder([FromBody]PurchaseOrderorder){}问题解决了是的,缺少“应用程序/json”。对于有同样问题的其他人,这是我的功能。我使用Knockout.js,因此使用“自我”一词。self.makePurchase=function(){vartempUserId=self.orderUserId();vartempCartPrice=self.ShoppingCartPrice();vartempAddress=self.orderAddress();vartempCart=self.ShoppingCart();varorderSave=newPurchaseSave(tempUserId,tempCartPrice,tempAddress,tempCart);varmyData=ko.toJSON(orderSave);控制台日志(我的数据);$.ajax({type:"POST",async:false,url:'/Products/AddOrder',contentType:"application/json",//谢谢Stackoverflow!!!dataType:"json",traditional:true,data:myData,error:function(xhr,textStatus,errorThrown){console.log(xhr.responseText);console.log("Insidetheerrormethod");},success:function(data){控制台.log("在成功方法中");}});}将您的实现更改为此。[System.Web.Http.HttpPost]publicboolAddOrder([FromBody]PurchaseOrderorder){}如需更多信息,请访问http://www.asp.net/web-api/overview/getting-started-with-aspnet-web-api/tutorial-your-first-web-api尝试使用NuGet的Newtonsoft.Json包。它们具有将任何字符串序列化和反序列化为Json的功能。还尝试使用动态类型变量。有助于反序列化。以上就是C#学习教程:WebAPI后端C#如何接收JSON数据?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
