不确定是否是错误。我按照一些教程将一个Json 2D数组发布到ASP.NET MVC控制器,当数组的第一个元素不为空时它工作正常,否则它会失败。
示例:如果我的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 :(得分:0)
我建议传递一个对象数组并在服务器端创建一个具有相同属性的类,然后asp.net MVC将自动将此数组(在JS端)转换为列表(或任何其他IEnumerable)是行动签名的一部分。