如何获得动态类型的属性值?
|
[更新]
抱歉,我应该标记这个问题
作为MVC-2,我将查询结果传递给
视图的模型,所以我必须指定类型
在View \标题中的模型
定义。我这样声明:
Inherits=\"System.Web.Mvc.ViewPage<IQueryable<dynamic>>\"
怎么都没有改变,也没有
答案对我不起作用:(。
最后我使用了ModelView类作为
将查询结果放入其中的助手。
:(
[/更新]
我有这样的查询:
IQueryable<dynamic> result = from d in KiaNetRepository.KiaNetEntities.Discounts
where d.AgentTypeID == agentTypeId
select new { d.Category, d.DiscountValue, d.PriceConfige };
然后我就这样在我的观点中获取价值:
foreach(var item in result){
Category cat = item.Category; // throws exception \'object\' does not contain a definition for \'Category\'
//...
}
请注意,作为IQueryable的查询类型是匿名类...
没有找到相关结果
已邀请:
4 个回复
抵浮细
赐黄
,我建议您使用
。这将使编译器将类型
的
与您使用select中的you9ѭ创建的匿名类的
进行匹配。您不必在此处显示的代码中使用
。
孝铜差
代替不适当的声明
,请确保它起作用,我也已经对其进行了测试。
厦惫
循环被编译为单独的程序集。由于匿名类型是内部类型,因此动态由于权限不允许而看不到它。 最简单的解决方法是在查询语句中调用“ 14”,然后选择每个匿名类型并将参数复制到声明的类或expandoobject。