C# 如何将多维数组从控制器返回到ajax成功?
我通过jQueryAjax调用控制器POST方法。控制器方法是将2D数组返回到ajax。 我能够成功地在ajax中获得数组,但它变成了1D数组,而我希望它是2D数组或我从controller方法发送的任何维数组 以下是我的控制器方法:C# 如何将多维数组从控制器返回到ajax成功?,c#,asp.net-mvc,jquery-ajaxq,C#,Asp.net Mvc,Jquery Ajaxq,我通过jQueryAjax调用控制器POST方法。控制器方法是将2D数组返回到ajax。 我能够成功地在ajax中获得数组,但它变成了1D数组,而我希望它是2D数组或我从controller方法发送的任何维数组 以下是我的控制器方法: [HttpPost] public JsonResult MultiDArrayToView(string s) { string[,] table = new string[2, 2];
[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>
而不是使用矩阵: 字符串[,]表=新字符串[2,2] 使用锯齿状数组 字符串[][]表=新字符串[2][2]
这将允许json序列化程序有效地进行转换。您能验证POST操作中的json响应是否确实被构造为二维数组吗?是的,它被构造为二维数组。那么您的问题是关于javascript和解析二维数组,与您的后端本身。好的,你知道怎么做吗?我宁愿编辑这个问题或者创建一个全新的问题。