2013-02-13 2 views
1

Я использую ASP.NET MVC3. В настоящее время у меня есть блог. Его работа хорошо, но записи теперь становятся все так, поэтому мне нужно архивировать, чтобы группировать их ежемесячно. Проблема в том, что я не имею представление о том, как это сделать ..


я считать, что его на DateTime, но я не знаю, логика позади него .. Я хочу, чтобы достичь чего-то вроде этого
Архив блога ASP.NET MVC3

September 2012 (1) 
October 2012 (3) 
December 2012 (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) 

} 
+0

Спасибо. Это было месяц назад, когда я задал этот вопрос. Но все же это помогает. –