C# 林克按年分组
我试图显示一个按年份分组的元素列表C# 林克按年分组,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我试图显示一个按年份分组的元素列表这就是我在控制器中所做的: public ActionResult YearNewsList() { var YearsList = db.tble_news.GroupBy(x => x.content_show_date.Value.Year) .Distinct(); return PartialView(YearsList); } 这就是我对视图所做的 @model IEn
这就是我在控制器中所做的:
public ActionResult YearNewsList()
{
var YearsList = db.tble_news.GroupBy(x => x.content_show_date.Value.Year)
.Distinct();
return PartialView(YearsList);
}
这就是我对视图所做的
@model IEnumerable<invensys.Models.tble_news>
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.content_show_date.Value.Year)
}
@model IEnumerable
@foreach(模型中的变量项){
@DisplayFor(modelItem=>item.content\u show\u date.Value.Year)
}
但当我尝试运行此程序时,总是会得到以下结果:
传递到字典中的模型项的类型为
“System.Data.Entity.Infrastructure.DbQuery1[System.Linq.iGroup
2[System.Int32,invensys.Models.tble_news]”,
但此词典需要类型为的模型项
'System.Collections.Generic.IEnumerable'1[invensys.Models.tble_news]'
GroupBy
返回您试图使其成为IEnumerable
对象的IEnumerable
在您的情况下,应该定义视图的模型
@model IEnumerable<invensys.Models.tble_news>
@foreach (var item in Model) {
@Html.DisplayFor(modelItem => item.content_show_date.Value.Year)
}
@model IEnumerable
如果您的x.content\u show\u date.Value.Year
类型为int
然后,您可以按如下方式显示信息:
@foreach (var groupItem in model)
{
@Html.DisplayFor(groupItem.Key)
//some code to display groupitems by loop groupItem
}
.Distinct()将返回disctint分组(所有分组)。
如果您想用任何invensys.Models.tble_news而不是.Distinct()表示年份,请使用
什么类型的“var年表”?谢谢大家,但是Jarvan你的方法成功了非常感谢Hesh