我正在尝试向视图发送IEnumerable
并显示其中的每个元素但我发送时遇到问题。它说:
{System.Linq.Enumerable.WhereSelectEnumerableIterator<System.Linq.IGrouping<string,MvcApplication4.Models.USER>,<>f__AnonymousType8<string,int>>}
我不知道如何处理它。
这是我的观点:
@model IEnumerable<dynamic>
我得到dynamic
因为我从几个函数转到这个视图如何发送不同的类型。
<table border="1" style="text-align:center">
<tr>
<td> </td>
<td> user name </td>
<td>age </td>
<td>comments </td>
</tr>
@foreach (var t in (Model))
{
<tr>
<td>@(count++))</td>
<td> @Console.WriteLine(t)</td>
<td> </td>
<td> </td>
</tr>
}
</table>
我从这个linq获得了IEnumerable
:
var allU = (from m in comList
join c in users on m.user equals c.user into cm1
from cm2 in cm1.DefaultIfEmpty()
group cm2 by m.user into grouped
select new { name = grouped.Key, count = grouped.Count() }).AsEnumerable();
所以我的问题是:我怎样才能在视图中获得它的元素?
答案 0 :(得分:3)
您无法在视图中引用该类型,因为它是匿名类型。而是定义一个类型来存储查询结果:
public class Result
{
public string Name { get; set; }
public int Count { get; set; }
}
然后将您的查询更改为投影到该类型:
var allU = (from m in comList
join c in users on m.user equals c.user into cm1
from cm2 in cm1.DefaultIfEmpty()
group cm2 by m.user into grouped
select new Result { Name = grouped.Key, Count = grouped.Count() }).AsEnumerable();
然后,您就可以绑定到视图中的IEnumerable<Result>
类型。