匿名对象
今天做一个功能,需要从后台返回数据(数组)给前端。数组里面的每一个对象里面都有好几个属性,但是又不想因为这几个属性专门创建一个Model Class。所以就用上了匿名对象。
前端需要的数据格式类似
[ {firstname: "harry", lastname: "huang", sex: "m", age: 30}, {firstname: "james", lastname: "chen", sex: "m", age: 35} ]
在后端查询到数据后,用匿名对象进行数据组织:
List<object> personInfo = new List<object>(); foreach(DataRow row in dt.Rows) { object person = new { firstname = row["firstname"], lastname = row["lastname"], sex = row["sex"], age = row["age"] } personInfo.Add(person); } return personInfo
这样返回到前端这个数据就可以直接使用了,数据格式跟第一段代码的一样。
本来还想在后台对生成的匿名对象的值进行修改,发现匿名对象的属性是只读的。。只能在生成之前提前把可能变更的数据准备好了。
匿名对象在后台进行遍历的方法如下:
foreach(dynamic obj in personInfo) { var firstName = obj.firstname; var lastName = obj.lastname; }