Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.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
Javascript 控制器未检索Ajax发布Json数组_Javascript_C#_Asp.net_Json_Ajax - Fatal编程技术网

Javascript 控制器未检索Ajax发布Json数组

Javascript 控制器未检索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',

Javascript

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('删除记录失败,请稍后再试。')); });