业务需求:页面显示的文章按照年份分组并按照年份倒序排列。
控制器代码实现:
public class ArticleController : Controller
{
private DataContext db = new DataContext();
//
// GET: /Article/
public ActionResult Index()
{
//var articles = from a in db.Articles group a by a.CreateTime.Year into aa orderby aa.Key descending select aa;
return View(db.Articles.GroupBy(a => a.CreateTime.Year).OrderByDescending(a => a.Key).ToList());
}
}
视图部分:
引入类型:@model IEnumerable<IGrouping<int, _116.Models.ArticleModels>>
<h2><small>文章存档</small></h2>
<div>
@foreach (var items in Model)
{
<h3 class="h3"><small>@items.Key</small></h3>
<ul>
@foreach (var item in items)
{
<li class="list-group-item-text">
<a href="/Article/Details/@item.ObjectID">@Html.DisplayFor(modelItem => item.ObjectTitle)</a>
<div class="meta">
<time>@item.CreateTime.ToString("yyyy-MM-dd")</time>
<i class="glyphicon glyphicon-eye-open eye"></i>
<span>(@Html.DisplayFor(modelItem => item.VisitedCount))</span>
</div>
</li>
}
</ul>
}
</div>
页面效果: