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

jQuery.post json data received with unexpected name in server

我在使用 jQuery.post:

提交我的 json 数据时遇到了一些 javascript 的问题 - 敲除代码

我正在使用 C# MVC3,并且我有一个将模型作为输入参数的操作。我正在从 Web 客户端以 JSON 的形式检索我的 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 代码中。

我在猜怎么才能得到正确的名字...

你能帮我一下吗?

在此先感谢大家。

亲切的问候。

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

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

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