Arrays 向控制器MVC 4发送多维数组

Arrays 向控制器MVC 4发送多维数组,arrays,ajax,asp.net-mvc-4,multidimensional-array,Arrays,Ajax,Asp.net Mvc 4,Multidimensional Array,向控制器发送多维数组时出现问题。我有一个30行的表,这些行是在for循环中创建的 问题是我为表中一行中的5个元素创建了一个多维数组 功能 $.fn.RealizarCalculo = function (count) { var admin = $("#AdminSimple" + count).val(); var fondo = $("#FondosSimple" + count + " option:selected").text(); var secId =

向控制器发送多维数组时出现问题。我有一个30行的表,这些行是在for循环中创建的

问题是我为表中一行中的5个元素创建了一个多维数组

功能

 $.fn.RealizarCalculo = function (count) {

    var admin = $("#AdminSimple" + count).val();
    var fondo = $("#FondosSimple" + count + " option:selected").text();
    var secId = $("#FondosSimple" + count).val();
    var monto = $("#MontoSimple" + count).val();
    var porcentaje = $("#PorSimple" + count).val();
    var list = new Array();

    if (admin != "" && secId != "" && monto != "" && porcentaje != "") 
    {
        for (var i = 1; i <= 30; i++) 
        {
            var admin = $("#AdminSimple" + i).val();
            var fondo = $("#FondosSimple" + i + " option:selected").text();
            var secId = $("#FondosSimple" + i).val();
            var monto = $("#MontoSimple" + i).val();
            var porcentaje = $("#PorSimple" + i).val();

            list[i] = [{ administrador: admin, fondoCartera: fondo, sec: secId, montoCartera: monto, porcentajeC: porcentaje}];

        }

        $.ajax({
            url: "Simu/RealizarSimulacion",
            type: "POST",
            traditional: true,
            contentType: 'application/json',
            data: JSON.stringify({ lista:list }),
            dataType: 'json'
        }).done(function () {
            alert("sucess");
        });

    }
   };
谢谢你的帮助,对不起我的英语,我是智利人。

首先,你没有(也不应该)创建多维数组。它是一个对象数组。第二,你不能发回
Array
(什么数组?而
Array
是一个抽象类!)

使用要过帐的属性创建对象(调整属性类型以适应)

并调整脚本

$.fn.RealizarCalculo = function (count) {
  var admin = $("#AdminSimple" + count).val();
  ....
  var list = new Array();

  if (admin != "" && secId != "" && monto != "" && porcentaje != "") {
    for (var i = 1; i <= 30; i++) {
      var admin = $("#AdminSimple" + i).val();
      list.push({ administrador: admin, fondoCartera: fondo, sec: secId, montoCartera: monto, porcentajeC: porcentaje});
    }
    $.ajax({
      url: '@Url.Action("RealizarSimulacion", "Simu")', // dont hardcode url's!
      type: "POST",
      traditional: true,
      contentType: "application/json; charset=utf-8",
      data: JSON.stringify({ lista: list }),
      dataType: 'json'
    }).done(function () {
      alert("success");
    });
  }
};

很难理解这段代码在做什么,但是如果你真的有带有
id=adminSimple1“
id=adminSimple2”
等控件,你需要停止编码,开始学习MVC的一些基础知识,包括如何使用视图模型以及如何使用强类型html助手在视图中呈现控件

相关:您正在接收一个对象列表,因为这是您声明要接收的方法。是的,但我无法获取对象的属性,如Administrator、fondoCartera等。这是因为
对象
没有此类属性。实际上,我自己并没有这样做过(像这样发布json),所以我不确定到底应该使用什么,但我想知道
列表
是否可行,或者可能还有另一个数据结构……它不起作用,数组是这样的:[1]“[object object]”当你把鼠标放在变量上时。多维数组的意义是什么?内部数组只包含一个对象!它可以是list.push({administrador:admin,fondoCartera:fondo,sec:secId,montoCartera:monto,porcentajeC:porcentaje})。谢谢你的帮助,我知道帮助程序,但我找不到实现它们的方法,因为我想这么做。我在一个MVC应用程序中工作,但该项目是8个项目之一(是一个n层解决方案),因此访问dto或结构并不容易,另外,我只学习了大约一个月的MVC,所以,你是对的,我必须学习更多的MVC。再次感谢你的帮助。
public class MyClass
{
  public string administrador { get; set; }
  public string fondoCartera { get; set; }
  public string sec{ get; set; }
  public string montoCartera{ get; set; }
  public string porcentajeC { get; set; }
}
$.fn.RealizarCalculo = function (count) {
  var admin = $("#AdminSimple" + count).val();
  ....
  var list = new Array();

  if (admin != "" && secId != "" && monto != "" && porcentaje != "") {
    for (var i = 1; i <= 30; i++) {
      var admin = $("#AdminSimple" + i).val();
      list.push({ administrador: admin, fondoCartera: fondo, sec: secId, montoCartera: monto, porcentajeC: porcentaje});
    }
    $.ajax({
      url: '@Url.Action("RealizarSimulacion", "Simu")', // dont hardcode url's!
      type: "POST",
      traditional: true,
      contentType: "application/json; charset=utf-8",
      data: JSON.stringify({ lista: list }),
      dataType: 'json'
    }).done(function () {
      alert("success");
    });
  }
};
public ActionResult RealizarSimulacion(MyClass[] lista) // or List<MyClass> lista
{
  return View("Simulador"); // this makes no sense
}