关于 mvc 中传递匿名对象, view 中无法解析
最近做项目用到 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 层的解析就可以拿到对应的数据了.
来源: https://www.2cto.com/kf/201904/805473.html