博客存档ASP.NET MVC3

时间:2013-02-13 09:00:57

标签: asp.net-mvc-3 razor

我正在使用ASP.NET MVC3。目前我有一个博客。它运作良好,但条目现在变得很多,所以我需要一个archieve每月分组。问题是我不知道该怎么做。


我正在考虑它的日期时间,但我不知道它背后的逻辑..我想实现这样的事情

September 2012 (1)
October 2012 (3)
December 2012 (0)

我很感激能帮助我的人。谢谢。 :)

1 个答案:

答案 0 :(得分:2)

你可以这样做。我之前有同样的问题。

ArchiveRepository

 public IQueryable<ArchiveListModel> AchiveList()
        {

            var ac = from Post in db.Posts
                     group Post by new { Post.DateTime.Year
, Post.DateTime.Month }
                     into dategroup
                     select new ArchiveListModel()
                      {

                         AchiveYear = dategroup.Key.Year,
                         AchiveMonth = dategroup.Key.Month,
                         PostCount = dategroup.Count()

                       };

            return ac;
        }

<强>控制器

public ActionResult ArchiveBrowse(int AchiveYear, int AchiveMonth, int PostCount)
        {
            var archivemodel = (from a in db.Posts
                                where a.DateTime.Year == AchiveYear &&
                                      a.DateTime.Month == AchiveMonth
                                select a).ToList();


            return View(archivemodel);
        }

查看

@foreach (var item in Model)
{
@Html.ActionLink(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.GetMonthName(item.AchiveMonth) + "" + item.AchiveYear + " (" + item.PostCount + ")",
  "ArchiveBrowse", "Post", new
  {
      AchiveYear = item.AchiveYear,
      AchiveMonth = item.AchiveMonth,
      PostCount = item.PostCount
  }, null) 

}