如何从控制器return多维数组到ajax成功?
How to return multi-dimensional array from controller to ajax success?
我正在通过 jquery ajax 调用控制器 POST 方法。控制器方法正在将二维数组返回到 ajax。
我能够在 ajax 成功中成功获取数组,但它变成了一维数组,而不是我希望它是二维数组或我从控制器方法发送的任何维度数组。
这是我的控制器方法:
[HttpPost]
public JsonResult MultiDArrayToView(string s)
{
string[,] table = new string[2, 2];
table[0, 0] = "1";
table[0, 1] = "2";
table[1,0] = "3";
table[1,1] = "4";
var response = new { table = table};
return Json(response);
}
这是我的查看代码:
<body>
<div>
<form action="/Home/MultiDArrayToView" method="post" id="form">
<input name="s" required/>
<button type="submit">Submit</button>
</form>
</div>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function () {
$("#form").submit(function (event) {
event.preventDefault(); //prevent default action
var post_url = $(this).attr("action"); //get form action url
var request_method = $(this).attr("method"); //get form GET/POST method
var form_data = new FormData(this); //Creates new FormData object
$.ajax({
url: post_url,
type: request_method,
data: form_data,
contentType: false,
cache: false,
processData: false,
datatype: "json",
success: function (value) {
//here I am getting array from controller method in 'value' but as a 1D array instead I want multidimensional array
debugger;
}
});
});
});
</script>
</body>
而不是使用矩阵:
string[,] table = new string[2, 2];
使用交错数组
string[][] table = new string[2][2];
这将允许 json 序列化程序有效地进行转换。
我正在通过 jquery ajax 调用控制器 POST 方法。控制器方法正在将二维数组返回到 ajax。 我能够在 ajax 成功中成功获取数组,但它变成了一维数组,而不是我希望它是二维数组或我从控制器方法发送的任何维度数组。
这是我的控制器方法:
[HttpPost]
public JsonResult MultiDArrayToView(string s)
{
string[,] table = new string[2, 2];
table[0, 0] = "1";
table[0, 1] = "2";
table[1,0] = "3";
table[1,1] = "4";
var response = new { table = table};
return Json(response);
}
这是我的查看代码:
<body>
<div>
<form action="/Home/MultiDArrayToView" method="post" id="form">
<input name="s" required/>
<button type="submit">Submit</button>
</form>
</div>
<script src="~/Scripts/jquery-3.3.1.min.js"></script>
<script>
$(document).ready(function () {
$("#form").submit(function (event) {
event.preventDefault(); //prevent default action
var post_url = $(this).attr("action"); //get form action url
var request_method = $(this).attr("method"); //get form GET/POST method
var form_data = new FormData(this); //Creates new FormData object
$.ajax({
url: post_url,
type: request_method,
data: form_data,
contentType: false,
cache: false,
processData: false,
datatype: "json",
success: function (value) {
//here I am getting array from controller method in 'value' but as a 1D array instead I want multidimensional array
debugger;
}
});
});
});
</script>
</body>
而不是使用矩阵:
string[,] table = new string[2, 2];
使用交错数组
string[][] table = new string[2][2];
这将允许 json 序列化程序有效地进行转换。