在服务器中收到带有意外名称的jQuery.post json数据

时间:2015-03-24 14:07:28

标签: jquery json asp.net-mvc-3 knockout.js

当我使用jQuery.post提交我的json数据时,我遇到了一些javascript - knockout代码的问题:

我正在使用C#MVC3,我有一个带有Model作为输入参数的动作。我正在从Web客户端检索我的一个JO形式的KO对象并使用ajax提交它:

$.post("MyAction", ko.toJS(myObject));

我想在服务器上的Request.Form变量中接收我的所有数据,但myObject里面有两个嵌套列表,我收到的数据如下:

varname1 -> it's ok
list[0][varname2] -> list[0] is OK, but I'm expecting list[0].varname2...

我正在搜索jQuery(版本1.8.3,相当旧,我知道......)代码,但我无法看到代码编码参数名称的位置。

在我的JSON中,它们是正确的:

{ varname1: "somedata", list: [{varname2: "some data", varname3:"and some more"}] }

我正在用firebug偷看我的请求,我看到服务器发出了错误的名字,所以我很确定问题出在javascript代码中。

我想猜猜我怎样才能得到正确的名字......

请你帮帮忙吗?

提前感谢所有人。

亲切的问候。

1 个答案:

答案 0 :(得分:0)

我认为您的json转换不正确。

  • 您正在使用$ .post(" MyAction", ko.toJS (myObject));
  • 你应该使用$ .post(" MyAction", ko.toJSON (myObject));代替

ko.toJS用于将json转换为js对象。