最近做项目用到MVC,发现用linq查询得到的数据是匿名类型对象,通过模型绑定、或者ViewBag、ViewData进行数据传递后,View解析报错:“object 未包含xx的定义”;
没找到好的解决办法,就只能通过内部对象一个类型去解决。
所以想到了对内部对象一个类型转换,转换成Jobject,使用Jtoken进行转换,对数据对象进行包裹,然后进行传递,View就可以正确解析了,下面贴一下代码;如果有好的解决办法,欢迎留言~~~
using Newtonsoft.Json;
using Newtonsoft.Json.Linq; var resList= list.Select(u =>
{ JObject job = new JObject{
new JProperty("Data" ,JToken.FromObject(u))
};
return job;
}).ToList();
list就是使用linq查询获取到的匿名类型对象,需要先tolist一下转换为IEnumerable类型再进行select映射
View层的解析就可以拿到对应的数据了。