【发布时间】:2013-04-03 17:23:04
【问题描述】:
我正在向服务器 (.Net) 发布信息,但在将数组传递给控制器操作时遇到问题。我已经尝试了几乎所有可能的组合,但没有任何运气。然而,其中之一让我感到困惑。
如果我执行此请求:
var dataArray = [ { /* some plain object */ }, { /* another plain object */ ], ... ];
$.ajax(url, {
type: "post",
data: { models: dataArray }
});
产生一个请求数据发送之类的
models[0][property1]:value1
models[0][property2]:value2
...
models[1][property1]:value3
models[0][property2]:value4
...
不幸的是,.Net MVC4 无法理解该请求。在相关的SO question 之后,我尝试过traditional: true,但发送到服务器的请求如下所示:
models:[object Object]
显然,它发送的不是对象,而是字符串"[object Object]"。 ……这有什么问题?我是否注定要为每个涉及非原始参数的请求发送序列化字符串(并且必须在服务器端手动反序列化它们)?
注意:这是我的操作方法。至于现在,我尝试的所有结果都是
- 参数是一个大小正确的数组,但每一项都是一个新的未修改(空)对象或
-
参数为空
[HttpPost] public ActionResult UpdateModels(Models.SimpleModel[] models)
【问题讨论】:
标签: jquery .net asp.net-mvc-4