MVC 3控制器GroupBy查看错误

时间:2012-10-22 19:02:12

标签: asp.net-mvc-3 linq

我从控制器创建MVC 3视图。我的模型“MyList”,包含大量记录。当我使用以下linq语句创建我的模型时:

var model = _db.MyList.GroupBy(r => r.myKey);

我收到错误:“传入字典的模型项的类型是'System.Collections.GenericlList'1 ...但是这个字典需要一个'System.Collections.Generic.IEnumerable'类型的模型项...

在视图中,我在第一行中有以下代码:

@model IEnumerable<MyApp.Models.MyList>

我试过回复

return View(model.ToList());

来自控制器,但没有快乐。我错过了什么?

3 个答案:

答案 0 :(得分:0)

model.ToList()将返回List<T>,其中T是MyList。您的模型类型是直的MyList。如果您上面的var声明已经返回MyList,请执行return View(model)

答案 1 :(得分:0)

这个人整个早上都困扰着我。我在下面的帖子中找到了我的问题的答案:

Linq Distinct() by name for populate a dropdown list with name and value

我基本上会返回以下内容:

public static IEnumberable<MyModel> FindTheKeys(this IQueryable<MyModel> myList)
{
    return myList.OrderBy(r => r.AreaKey);
}

然后按照上面的帖子进行选择。

var model = _db.MyModel.FindTheKeys().GroupBy(r => r.AreaKey).Select(g => g.First());

答案 2 :(得分:-1)

GroupBy返回IGrouping<TKey, TSource>的集合,而不是MyList(这很奇怪,你不会有列表列表。

GroupBy转换为列表甚至没有多大意义。你是否真的意味着OrderBy