Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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
传递到WEb API操作时丢失JSON中的值_Json_Asp.net Web Api - Fatal编程技术网

传递到WEb API操作时丢失JSON中的值

传递到WEb API操作时丢失JSON中的值,json,asp.net-web-api,Json,Asp.net Web Api,我有一个具有一些属性的对象A,其中一个是其他类型B的列表 我有一个Web API动作,它将对象作为参数 我只是测试我可以通过JSON传递这个对象,我有一个Web表单,上面有一些Javascript,如下所示 var tmpData = { lid: "f8fdb980-ccb8-4a54-9b83-b73dd2d569ca", aid: "8f6efc68-d747-42a4-b7d4-218951b66a97", bid: "e9f5e5

我有一个具有一些属性的对象A,其中一个是其他类型B的列表

我有一个Web API动作,它将对象作为参数

我只是测试我可以通过JSON传递这个对象,我有一个Web表单,上面有一些Javascript,如下所示

    var tmpData = {
        lid: "f8fdb980-ccb8-4a54-9b83-b73dd2d569ca",
        aid: "8f6efc68-d747-42a4-b7d4-218951b66a97",
        bid: "e9f5e5d2-5d3d-41ac-89dc-7586ec2a5286",
        ps: []
    };
    tmpData['ps'].push({ "cid": "5a664dcc-8281-41f1-b81c-ae49499e12b8", "d": 5, "q": 2 });
    tmpData['ps'].push({ "cid": "4e9a30e0-c741-4708-88d7-8db4941c17cc", "d": 10, "q": 2 });

    var myJSON = JSON.stringify(tmpData);

    //Call the action to get the list in JSON format
    url = "http://localhost:64878/home/TakeTestBasketAddItemsRequest";
    $.ajax({
        url: url,
        type: 'POST',
        cache: false,
        data: myJSON,
        success: function (resultantData) {
            var s = resultantData;
            pResults.innerHTML = s;
        }
    });
这将进入动作OK,并且对象在ps属性中有2项。 但是,这两项中的值丢失,剩下的值为零/未初始化

我为什么会丢失列表项的值

为清楚起见,以下是我的行动

    [HttpPost]
    public ActionResult TakeTestBasketAddItemsRequest(ECodeBasketRequest model)
    {
        try
        {
            var sb = new StringBuilder();
            sb.AppendLine(String.Format("LocationBridgeId: {0}{1}", model.lid, Environment.NewLine));
            sb.AppendLine(String.Format("ApplicationBridgeId: {0}{1}", model.aid, Environment.NewLine));
            sb.AppendLine(String.Format("BasketId: {0}{1}", model.bid, Environment.NewLine));
            foreach (var p in model.ps)
            {
                sb.AppendLine(String.Format("CategoryBridgeId: {2} Denomination: {0} Quantity: {1}{3}", p.d, p.q, p.cid, Environment.NewLine));
            }
            return Content(sb.ToString());
        }
        catch (Exception ex)
        {
            return Content(string.Format("Problem: {0}", ex.ToString()));
        }
    }
正如我所说,我现在只是在测试,所以我很想弄清这一点。谢谢你,
Ant

向所有人道歉-但我似乎不喜欢内容类型。。。。 contentType:application/json

当一些物体被重建好了,而其他的没有…但是,嘿,哦,今天是星期五,它工作了,这是误导

希望它能帮助其他人走出困境。。。。。。。 所以我现在发现这是有效的

    $.ajax({
        url: url,
        type: 'POST',
        cache: false,
        **contentType: "application/json",**
        data: myJSON,
        success: function (resultantData) {
            var s = resultantData;
            pResults.innerHTML = s;
        }

这就是我从行动中得到的。。。。。位置BridgeId:f8fdb980-ccb8-4a54-9b83-b73dd2d569ca应用BridgeId:8f6efc68-d747-42a4-b7d4-218951b66a97 BasketId:e9f5e5d2-5d3d-41ac-89dc-7586ec2a5286类别BridgeId:00000000-0000-0000-00000000面额:0数量:0类别BridgeId:00000000-0000-0000-00000000面额:0数量:0