Arrays 向控制器MVC 4发送多维数组
向控制器发送多维数组时出现问题。我有一个30行的表,这些行是在for循环中创建的 问题是我为表中一行中的5个元素创建了一个多维数组 功能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 =
$.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
}