欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于mvc中传递匿名对象,view中无法解析

程序员文章站 2022-07-11 08:14:01
最近做项目用到MVC,发现用linq查询得到的数据是匿名类型对象,通过模型绑定、或者ViewBag、ViewData进行数据传递后,View解析报错:“object 未包含xx的定义”; 没找到好的解决办法,就只能通过内部对象一个类型去解决。 所以想到了对内部对象一个类型转换,转换成Jobject, ......

最近做项目用到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层的解析就可以拿到对应的数据了。