我正在向服务器 (.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 问题traditional: true
之后,但发送到服务器的请求如下所示:
models:[object Object]
显然,它发送的不是对象,而是字符串"[object Object]"
。……这有什么问题?我是否注定要为每个涉及非原始参数的请求发送序列化字符串(并且必须在服务器端手动反序列化它们)?
注意:这是我的操作方法。至于现在,我尝试的一切都会导致
- 该参数是一个正确大小的数组,但每个项目都是一个新的未修改(空)对象或
参数为空
[HttpPost] public ActionResult UpdateModels(Models.SimpleModel[] models)