Javascript 控制器未检索Ajax发布Json数组
JavascriptJavascript 控制器未检索Ajax发布Json数组,javascript,c#,asp.net,json,ajax,Javascript,C#,Asp.net,Json,Ajax,Javascript var poItemData = JSON.stringify(grid.getAll()); poItemData = JSON.stringify({ 'poItemData': poItemData }); alert(poItemData.toString()); $.ajax({ contentType: 'application/json; charset=utf-8',
var poItemData = JSON.stringify(grid.getAll());
poItemData = JSON.stringify({ 'poItemData': poItemData });
alert(poItemData.toString());
$.ajax({
contentType: 'application/json; charset=utf-8',
dataType: 'json',
type: 'POST',
url: "@Url.Action("CreateOrUpdate2", "PurchaseOrder")",
data: poItemData,
success: function () {
alert("Ok");
},
failure: function (response) {
alert("!Ok");
}
});
发布Json
{"poItemData":"[{"id":3,"itemName":"Item 1","itemId":1,"poId":2,"quantity":100,"averageCost":100,"recordStatus":"O"},{"id":4,"itemName":"Item 2","itemId":2,"poId":2,"quantity":1000,"averageCost":10,"recordStatus":"O"}]"}
控制器
public IActionResult CreateOrUpdate2(List<PurchaseOrderItemList> poItemData)
{
return View();
}
控制器未检索已发布的Json。我想以列表的形式检索发布的结果。请帮忙解决
我的项目正在.net core 1.0.0 framework上运行。有人已经发布了,请尝试使用
formatedData = JSON.stringify(poItemData);
...
data: formatedData,
我会将方法签名更改为
[HttpPost]
public IActionResult CreateOrUpdate2(PurchaseOrderItemList[] poItemData)
因为我不确定你是否可以在方法中直接接收列表实例,因为有人已经发布了,请尝试
formatedData = JSON.stringify(poItemData);
...
data: formatedData,
我会将方法签名更改为
[HttpPost]
public IActionResult CreateOrUpdate2(PurchaseOrderItemList[] poItemData)
因为我不确定你是否可以直接在方法中接收列表实例试试poItemData=JSON.stringify(poItemData);您提供的JSON无效。那个JSON是一个很大的引用错误。您是将其发布为实际的JSON还是字符串?如果是后者,那么控制器不也需要字符串吗?无论是模型绑定器反序列化JSON,还是从控制器中的字符串手动反序列化JSON,都需要从有效的JSON开始;您提供的JSON无效。那个JSON是一个很大的引用错误。您是将其发布为实际的JSON还是字符串?如果是后者,那么控制器不也需要字符串吗?不管是模型绑定器反序列化JSON,还是您从控制器中的字符串手动反序列化JSON,您都需要从有效的JSON开始。谢谢大家,JSON在字符串化之后出现了问题。修好了,谢谢。顺便说一下,我已经使用下面的代码var poItemData=grid.getAll();$解决了这个问题。ajax({url:actionUrl,数据:{poHeaderData:formData,poItemData:poItemData},方法:'POST'})。完成(函数(){//grid.reload();})。失败(函数(){alert('删除记录失败,请稍后再试。')); });谢谢大家,Json在串接之后出现了一个问题。修好了,谢谢。顺便说一下,我已经使用下面的代码var poItemData=grid.getAll();$解决了这个问题。ajax({url:actionUrl,数据:{poHeaderData:formData,poItemData:poItemData},方法:'POST'})。完成(函数(){//grid.reload();})。失败(函数(){alert('删除记录失败,请稍后再试。')); });