匿名对象不能跨域传输.类型信息会丢失.
这才是你这个问题的根本原因
那除了tuple,还有别的解决方案么?
@nicklooo: 没有解决方法,你可以用dynamic
ViewData继承自 IDictionary<string, Object>,是个字典类型,无法像你那样操作。你应该使用ViewBag。
用viewbag、viewdata都试过了不行。。
现在是这样
@nicklooo: 你要强制转换T_Components集合类型,你是新手?
@wongdavid: 确实刚接触c#时间不久,T_Components是个实体对象Set,没看出哪里用了强制转换。。
@nicklooo: 学好基础吧。
ViewData,tempdata,viewbag都可以用的啊,你前台怎么解析的?
解析的时候提示 object未包含属性的定义
@nicklooo: 定义一个ViewModel,然后把值给ViewModel,前台用时转换成ViewModel
@happydaily: 嗯,如果没办法也只能这样了
你需要把ViewBag转换成你对应的类型
foreach(var item in (类型)ViewBag.List)
{}
我传进去的是一个匿名的对象啊,这怎么转啊。。
@nicklooo: 这个我说错了。但是你查询的为 select new{A=a.ID, B=a.Name}; 没有查询这个BarcodeId啊。
@单恋: 后面代码做了下来小修改,把ID改成了BarcodeId。
匿名 前台反射
嗯,这个确实可行,不过由于数据量比较大,项数也比较多,前台反射以后效率会低很多。实在不行只有自己定义一个对象了
最终还是自己定义了一个类来存储结果,不使用匿名类型,项目时间比较紧,以后再继续研究。。
这个问题是怎么解决的?只能定义一个类了吗?
我也遇到了这个问题,要是能解决的话,是最好的,希望博主留个联系方式一起解决
using Newtonsoft.Json.Linq;
var resList= list.Select(u =>
{
JObject job = new JObject{
new JProperty("Data" ,JToken.FromObject(u))
};
return job;
}).ToList();
可以达到效果。