在QQ群或者一些程序的交流平台,经常会有人问:我怎么传一个数组在Action中接收、我传的数组为什么Action的model中接收不到、或者我在ajax的data中设置了一些数组,为什么后台还是接收不了、还有一些怎么传送一个复杂的对象或者Action怎么接收一个复杂的对象等等这些问题。或者有些人遇到复杂的对象或者数组直接就传送个json字符串,然后在Action中把json字符串转成model对象,当然这也是一种做法,但也许不是最优的做法。

 

一、需求

按照如图的数据格式,传入到Action,用一个UserInfo Model接收,需求非常简单。

万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

分析后我们可以看到,其中爱好是个字符串的数组,用户包含一个公司对象,然后所包含的公司对象中又有个电话数组,用户又包含数组对象,所以我们的Model应该是:

万码学堂,电脑培训,计算机培训,Java培训,JavaEE开发培训,青岛软件培训,软件工程师培训

public class UserInfo
{    public string Name { get; set; }    public int Age { get; set; }    public string[] Bobbys { get; set; }    public Company Company { get; set; }    public Star[] Star { get; set; }
}public class Company
{    public string Name { get; set; }    public string Address { get; set; }    public string[] Tel { get; set; }
}public class Star
{    public string Name { get; set; }    public int Age&nb