Asp.net mvc Json方法返回对象文本,应为Json

Asp.net mvc Json方法返回对象文本,应为Json,asp.net-mvc,knockout.js,Asp.net Mvc,Knockout.js,我试图返回JSON,以映射到模型,但是我不明白为什么我的方法返回的是对象文本而不是JSON 我创建了一个显示当前接收数据格式的 控制器方法 这将返回: ..并在浏览器中: 在我链接的Fiddle中,只需将对象文本包装在[]中,就可以让Knockout很好地解释对象,但如果没有它,它就会失败 是否有我做得不正确的事情,或者我没有收到JSON的原因?我是否需要返回一个ICollection或其他东西才能将其解释为JSON 我环顾四周,但没有真正找到任何东西。您需要一个数组,但在控制器上返回一个文

我试图返回
JSON
,以映射到模型,但是我不明白为什么我的方法返回的是对象文本而不是
JSON

我创建了一个显示当前接收数据格式的

控制器方法 这将返回:

..并在浏览器中:

在我链接的Fiddle中,只需将对象文本包装在
[]
中,就可以让Knockout很好地解释对象,但如果没有它,它就会失败

是否有我做得不正确的事情,或者我没有收到
JSON
的原因?我是否需要返回一个
ICollection
或其他东西才能将其解释为
JSON


我环顾四周,但没有真正找到任何东西。

您需要一个数组,但在控制器上返回一个文本对象。你正在用敲除法投标一个收藏,但这是字面意思。这就是为什么将[]放在JSON位置时,一切都能正常工作的原因


您只需将JSON中的每个属性推送到一个数组,而不是
\u map
,或者修复
\u map
函数将属性绑定到一个数组

您需要一个数组,但在控制器上返回一个文本对象。你正在用敲除法投标一个集合,但这是文字。这就是为什么当你把[]放在JSON上时,所有的东西都能工作的原因,哦,糟了。因为
\u map
对吗?是的,您应该将JSON中的每个属性推送到数组中,而不是映射,或者修复映射函数@谢谢!我一定看得太久了。。。如果你想把它作为答案,我会投赞成票+接受!
 public JsonResult GetDeferredAccountDetailsByAccount(int id)
        {
            var details = _deferredAccountDetailsService.GetDeferredAccountDetailsByAccount(id);

            return Json(details, JsonRequestBehavior.AllowGet);
        }