我试图使用ajax通过MVC模型绑定多维数组。我的单个Dimension数组映射得很好,唯一没有映射的就是多维。
我使用此功能抓取数据
var datas = $(this).find('tr:not(:has(th))').map(function (i, element) {
var tmp = $(element).find('td:not(:has(div))').map(function (i, element) {
return $(element).find('p').clone().children().remove().end().text()
}).get()
console.log(tmp);
return [tmp];
}).get();
我可以看到数据在chrome输出中变成了一个多维数组。 这是Ajax函数非常标准我将Traditional设置为true:
$.ajax({
data: {
Code: Code,
Datas: Datas,
Headers:Headers,
Title: Title,
FootNotes: FootNotes
},
traditional: true,
type: 'POST',
url: "http://localhost:53602/Building/StoreTableData/",
cache: false,
dataType: 'json',
success: function (resp) {
$(ElementSelector).css('border', '4px solid Orange')
$(ElementSelector).data('TableID', resp.ID);
},
error: function (xhr, ajaxOptions, thrownError) {
console.log(thrownError.toString())
$(ElementSelector).css('border', '4px dashed orange')
}
});
以下是C#的方法存根:
public ActionResult StoreTableData( List<List<string>> Datas, string Code, string Title, List<string> Headers, List<string> FootNotes = null){}
有没有人对如何做到这一点有任何建议或指导?
更新请求参数看似粗略我不知道如何确定内部数组默认有多大这里是从
发布的原始数据Request.Params["Datas"] = "1 to 25, 1, 26 to 50, 2, 51 to 75, 3, 76 to 100,
4, 101 to 150, 5, 151 to 200, 6, 201 to 300, 7, 301 to 400, 8, 401 to 500,
9, 501 to 1000, 2 percent of total, 1001 and over, 20, plus 1 for each 100,
or fraction thereof, over 1000"