【问题标题】:jQuery.post json data received with unexpected name in serverjQuery.post json 数据在服务器中收到意外名称
【发布时间】:2015-05-27 21:21:44
【问题描述】:

当我使用 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 代码中。

我正在尝试猜测如何才能获得正确的名称...

请帮帮我好吗?

在此先感谢大家。

亲切的问候。

【问题讨论】:

  • list[0][varname2] -> list[0] is OK, but I'm expecting list[0].varname2... 是什么意思,您可以发布您使用 Firebug 检查的请求吗?

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


【解决方案1】:

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

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

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

【讨论】:

  • 非常感谢,经过几天(假期),我意识到...但是,我认为浏览器应该解析 JSON 对象以正确获取变量名...用于转换的代码在哪里“表单字段”中的 json 对象发送到服务器?该代码在jQuery中?外部解析器/函数,还是进行转换的浏览器本身?这很简单的好奇心......非常感谢您的回复。问候。
猜你喜欢
  • 2017-05-08
  • 1970-01-01
  • 2012-11-24
  • 1970-01-01
  • 1970-01-01
  • 2017-12-14
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多