我試圖嵌套數組傳遞到一個asp.net MVC控制器是這樣的:
var subgroups = [];
subgroups [0] = [["A", "Y"],
["B", "Y"],
["C", "Y"]];
subgroups [1] = [["D", "Z"],
["E", "Z"],
["F", "Z"]];
$.ajax({ url: "<%= Url.Content("~/Controller/Action") %>", data: { subgroups: subgroups },
dataType: "json", context: document.body, success: function(data) { ... });
所得控制器:
public ContentResult Action(List<string[][]> subgroups) {
...
}
問題是在控制器中的子組產生的變量是這樣的:從深
subgroups[0][0] == null;
subgroups[0][1] == null;
subgroups[0][2] == null;
subgroups[1][0] == null;
subgroups[1][1] == null;
subgroups[1][2] == null;
的值ly嵌套數組不會通過。 Firebug的報道我的Ajax請求的參數是:
subgroups[0][0][] A
subgroups[0][0][] Y
subgroups[0][1][] B
subgroups[0][1][] Y
subgroups[0][2][] C
subgroups[0][2][] Y
subgroups[1][0][] D
subgroups[1][0][] Z
subgroups[1][1][] E
subgroups[1][1][] Z
subgroups[1][2][] F
subgroups[1][2][] Z
它看起來像的原因是jQuery是不是在這些數組索引填充,因爲我可以解決這個問題是我格式化數據:
subgroups [0] = [{ 0: "A", 1: "Y"}, ...];
爲什麼jQuery將外部數組的索引,而不是內部的?請告訴我有一個更好的解決方法,比手動指定數字鍵?
+1爲是最勇敢的男人的jQuery我所遇到:) – Jimbo 2010-08-13 06:20:02
您的解決方案一個也不太爲我工作,但它幫我找到通過改變線5419的解決方案: 'buildParams(前綴+「[」+ i +「]」,v);' 謝謝你打開一個錯誤報告,並引導我找到一個解決方案。我不確定這是一個錯誤還是有意的jQuery行爲,但對於運行ASP.net MVC的人來說,這種行爲似乎更有用。 – 2010-08-17 14:59:04
是的,我複製了錯誤的行號,右邊是5419.謝謝 – 2010-08-17 16:20:11