2011-11-15 69 views
0

不知道它是否是一個錯誤。我遵循一些教程將Json 2D數組發佈到ASP.NET MVC控制器,並且當數組的第一個元素不爲空時它工作正常,否則失敗。ASP.NET MVC 3控制器未能收到json 2D數組

示例:如果我的JSON obj是

var obj = { 
    ItemsArr: [[1, 2],[]] // first element is an array with a few elements 
}; 

控制器將正確地接收數據。但是,如果2D陣列的第一個元素是空陣列,如:

var obj = { 
    ItemsArr: [[], [1, 2]] // first element is an EMPTY array 
}; 

控制器將收到空值。

我正在使用jquery.json-2.3.min.js將objs轉換爲json字符串。 轉換後的字符串看起來不錯:

{"ItemsArr":[[1,2],[]]} 
{"ItemsArr":[[],[1,2]]} 

型號代碼:

public class Model 
{ 
    public List<string[]> ItemsArr {get;set;} 
} 

public MyController : Controller 
{ 
    public ActionResult DoSomething(Model model) 
    { ... 
    } 
} 

有任何人碰到這個問題?任何想法解決它?

在此先感謝!

===================================

編輯:

後一些研究,如果我將空數組更改爲null,它會起作用。

{"ItemsArr":[null,[1,2]]} 

回答

0

我建議傳遞對象的數組,並創建一個類與服務器端相同的屬性,asp.net MVC將自動轉換該陣列(在JS端)到一個列表(或任何其他IEnumerable),它是動作簽名的一部分。