Json方法返回Object literal,期望JSON

时间:2015-04-23 19:36:00

标签: asp.net-mvc knockout.js

我正在尝试返回JSON,以映射到模型,但我无法弄清楚为什么我的方法返回的是对象字面而不是JSON

我把一个Fiddle放在一起,显示我正在接收数据的当前格式。

控制器方法

 public JsonResult GetDeferredAccountDetailsByAccount(int id)
        {
            var details = _deferredAccountDetailsService.GetDeferredAccountDetailsByAccount(id);

            return Json(details, JsonRequestBehavior.AllowGet);
        }

返回:

enter image description here

..在浏览器中:

enter image description here

在我链接的小提琴中,简单地将对象文字包装在[]中允许Knockout解释对象就好了,但没有失败。

我做错了什么或者我没有收到JSON的原因?我是否需要返回ICollection或其他内容才能将其解释为JSON

我环顾四周但却找不到任何东西。

1 个答案:

答案 0 :(得分:1)

您需要一个Array,但是您正在控制器返回一个文字对象。而且你正在使用淘汰赛来收集一个集合,但是说这是一个文字。这就是为什么当你把[]放在JSON上时一切正常。

您应该将JSON中的每个属性都推送到数组而不是_map,或修复_map函数将属​​性绑定到数组!