// this function working perfectly
public dynamic CountTable()
{
return (from t in db.Users
group t by t.Type into g
select new
{
type = g.Key,
count = g.Count(),
ActiveGroups = (from t in g group t by t.Active into ag select new { active = ag.Key, count = ag.Count() })
}).ToList();
}
// and this loop working in MVC Controller
foreach (dynamic uct in ur.CountTable())
{
int x = uct.count;
}
但不在模板中工作:
Line 12: @foreach (dynamic uct in ViewBag.ur.CountTable())
Line 13: {
Line 14: int adet = uct.count;
Line 15: }
第14行:'对象'不包含'count'的定义
为什么呢?我该怎么办?
答案 0 :(得分:2)
答案 1 :(得分:0)
无法确定,因为我从不使用动态,但我怀疑这是剃刀视图引擎不支持的情况。虽然您可以拥有动态模型并直接在其上调用属性。 击>
例如以下作品:
@foreach (dynamic uct in new[] { new { Name = "foo" } })
{
<div>@uct.Name</div>
}
但是如果我们将其移动到其他地方的静态方法中:
@foreach (dynamic uct in Foo.SomeStaticMethod())
{
<div>@uct.Name</div>
}
它不再有效,因为我怀疑剃刀会自动转换为对象。
击>
我建议您定义几种类型并使用强类型,而不是使用动态。