.Net MVC 接收复杂 Json 的问题,求解决!
前台 js :
后台 Controller :
实体层 WMS_PPR 和 WMS_WarehouseInvoicing 类:
问题是这样的,前台写了两个 ajax 来请求controll Json1 和Json 2
json1是json对象 后台用Test1 (WMS_PPR) 来接收 的时候 json 这个节点:WMS_WarehouseInvoicing 显示接收到count=2 但是里面的数据都为Null,但是PPR_TOA,Remark 这两个都接收到了.
用json2 字符串类型的json格式去请求,后台用JsonConvert转一下 就可以接收到值了。。。
请问 json1 对象 为什么 后台WMS_PPR类型 接收不到(以前 简单的json对象就可以接受,只是没有里面的 [] )
function getTestJson() {
var json1 = {
"PPR_TOA": "2016-07-13",
"Remark": "SiteA",
"WMS_WarehouseInvoicing": [
{
"P_SKU": "9780201370010",
"P_Amount": "122"
},
{
"P_SKU": "1111111111113",
"P_Amount": "133"
}
]
};
$.ajax({
type: "POST",
url: "/MyProject/Test1",
data: json1,
success: function (data) {
alert(data);
}
});
var json2 = {
"data": "{ \"PPR_TOA\": \"2016-07-14\", \"Remark\": \"SiteA工地地址\"," +
"\"WMS_WarehouseInvoicing\": [" +
"{\"P_SKU\": \"9998768985135\", \"P_Amount\": \"120\"}," +
"{\"P_SKU\": \"9780201370010\", \"P_Amount\": \"330\"}" +
"]" +
"}"
};
$.ajax({
type: "POST",
url: "/MyProject/Test2",
data: json2,
success: function (data) {
alert(data);
}
});
}
后台 Controller :
[HttpPost]
public ActionResult Test1(WMS_PPR ppr)
{
var r = pprd.AddDeliveryPPR(ppr);
if (r > 0)
{
return Content("1");
}
return View();
}
[HttpPost]
public ActionResult Test2(string data)
{
WMS_PPR resq = JsonConvert.DeserializeObject<WMS_PPR>(data);
var r = pprd.AddDeliveryPPR(resq);
if (r > 0)
{
return Content("1");
}
return View();
}
实体层 WMS_PPR 和 WMS_WarehouseInvoicing 类:
public partial class WMS_PPR
{
public WMS_PPR()
{
this.WMS_PPRD = new HashSet<WMS_PPRD>();
this.WMS_TransportInfo = new HashSet<WMS_TransportInfo>();
this.WMS_WarehouseInvoicing = new HashSet<WMS_WarehouseInvoicing>();
}
[Key]
public int PPR_ID { get; set; }
public string PPR_No { get; set; }
public Nullable<System.DateTime> PPR_TOA { get; set; }
public string Remark { get; set; }
public virtual ICollection<WMS_PPRD> WMS_PPRD { get; set; }
public virtual ICollection<WMS_TransportInfo> WMS_TransportInfo { get; set; }
public virtual ICollection<WMS_WarehouseInvoicing> WMS_WarehouseInvoicing { get; set; }
}
public partial class WMS_WarehouseInvoicing
{
[Key]
public int WI_ID { get; set; }
public string P_SKU { get; set; }
public Nullable<decimal> P_Amount { get; set; }
public Nullable<System.DateTime> CreateTime { get; set; }
public string WI_Remark { get; set; }
[ForeignKey("PPR_ID")]
public virtual WMS_PPR WMS_PPR { get; set; }
[ForeignKey("P_ID")]
public virtual WMS_Product WMS_Product { get; set; }
[ForeignKey("W_ID")]
public virtual WMS_WarehouseInfo WMS_WarehouseInfo { get; set; }
public virtual ICollection<WMS_Delivery> WMS_DeliveryInput { get; set; }
public virtual ICollection<WMS_Delivery> WMS_DeliveryOutput { get; set; }
}
问题是这样的,前台写了两个 ajax 来请求controll Json1 和Json 2
json1是json对象 后台用Test1 (WMS_PPR) 来接收 的时候 json 这个节点:WMS_WarehouseInvoicing 显示接收到count=2 但是里面的数据都为Null,但是PPR_TOA,Remark 这两个都接收到了.
用json2 字符串类型的json格式去请求,后台用JsonConvert转一下 就可以接收到值了。。。
请问 json1 对象 为什么 后台WMS_PPR类型 接收不到(以前 简单的json对象就可以接受,只是没有里面的 [] )
...全文
相关推荐
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
在使用jQuery与ASP.NET MVC进行交互时,特别是当需要传递复杂的JSON数据到服务器时,可能会遇到序列化问题。默认情况下,jQuery的`$.ajax`方法会将数据转换为键值对形式进行发送
C# MVC中JSON提交与处理完整实例详解
今天我们拆解了从头部设置,到Newtonsoft.Json深度定制,再到MVC模型绑定的完整链条。这不仅是技术细节的堆砌,更是一种思维方式的转变——把API当作产品来设计。当你下次面对一个新接口时,不妨自问:- 请求体结构是否足够扁平?- 字段命名能否让前端同事一眼看懂?- 错误码体系是否完备?- 是否提供了Swagger文档?记住,在微服务架构盛行的今天,每个Controller方法都是一个微型服务契约。
.NET MVC3获取jQuery post 复杂类型json数据
本文介绍如何在.NET MVC3中通过jQuery发送复杂类型的JSON数据,并在服务器端正确解析。核心在于使用JavaScriptSerializer手动反序列化URL编码的JSON字符串,结合Ht
ASP.NET MVC Json表格数据 下载为Excel
在本文中,我们将深入探讨如何在ASP.NET MVC项目中实现一个功能,允许用户将通过Json获取的数据下载为Excel文件。
Ajax传Jsond Mvc后台接收实例
本文档详细介绍了如何使用Ajax在前端与ASP.NET MVC后端之间进行Json数据交互的实例。首先,让我们理解背景和关键知识点:**标题**:"Ajax传Json到Mvc后台接收实例"**


