首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将嵌套复杂json传递给MVC控制器

将嵌套复杂json传递给MVC控制器
EN

Stack Overflow用户
提问于 2014-06-06 00:52:26
回答 1查看 2.4K关注 0票数 3

注意到:它可能是在敦促一些人将这个问题标记为一个已经回答的问题,但事实并非如此,我已经寻找了很长一段时间的答案。这是"https://stackoverflow.com/questions/24027245/mvc-any-version-pass-nested-complex-json-object-to-controllers“的一个修改版本,也没有得到答复。

问题:是否可以通过jQuery ajax调用将JSON数据发布到more,其中您传递的数据是一个复杂类型,其中包含更复杂的类型?示例数组数组。

代码语言:javascript
复制
var arrayOfarrays = [];
var simpleArray = [];

simpleArray[simpleArray.length] = simpleArray.length + 1;
simpleArray[simpleArray.length] = simpleArray.length + 1;
simpleArray[simpleArray.length] = simpleArray.length + 1;
simpleArray[simpleArray.length] = simpleArray.length + 1;
simpleArray[simpleArray.length] = simpleArray.length + 1;

arrayOfarrays[arrayOfarrays.length] = simpleArray;
arrayOfarrays[arrayOfarrays.length] = simpleArray;
arrayOfarrays[arrayOfarrays.length] = simpleArray;
arrayOfarrays[arrayOfarrays.length] = simpleArray;
arrayOfarrays[arrayOfarrays.length] = simpleArray;

以上是我的数据。正如您所看到的,simpleArray只是一个数组,而arrayOfarrays是一个数组数组,在某种程度上是嵌套的复杂类型。

代码语言:javascript
复制
$.ajax({
    url: '/Home/Save',
    data: {arrayData:simpleArray, arrayOfarrayData:arrayOfarrays},
    type: 'POST',
    dataType: 'json',
    traditional:true,
    cache: false,
    success: function (result) {
    }
});

上面的片段是我对控制器jQuery /Home/Save的ajax调用,下面是控制器本身。请注意,我已经尝试过使用和不使用traditional:true选项。

代码语言:javascript
复制
[HttpPost]
public JsonResult Save(int[] arrayData, int[][] arrayOfarrayData)
{
    return Json("received");
}

这就是我观察到的:

  • 使用traditional:true,我接收arrayData,这是/Home/Save控制器中的一个简单数组,但arrayOfarrayData是空的
  • 如果没有traditional:true,我将接收arrayData作为null,但是arrayOfarrayData作为一个由5个元素组成的数组接收,但是元素不是您所期望的子数组信息,而是它的空信息。

PS:数组数组只是一个例子,没有嵌套的复杂类型似乎有效。或者有什么办法可以绕过这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-06 00:58:11

我认为你需要把你的数据

代码语言:javascript
复制
var dataToSend={
          'arrayData':simpleArray, 
          'arrayOfarrayData':arrayOfarrays
};

$.ajax({
    url: '/Home/Save',
    data: JSON.stringify(dataToSend),
    type: 'POST',
    contentType: 'application/json',
    dataType: 'json',
    traditional:true,
    cache: false,
    success: function (result) {
    }
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24072557

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档