2013-06-19 1 views
2

это мое действие:делает элемент списка результатов ViceVersa

public ActionResult List() 
     { 
      var currentDate = DateTime.Now; 
      var list = new List<ArchiveViewModel>(); 
      for (var startDate = new DateTime(2012, 11, 1); startDate <= currentDate; startDate = startDate.AddMonths(1)) 
      { 
       list.Add(new ArchiveViewModel 
       { 
        Month = startDate.Month, 
        Year = startDate.Year, 
        FormattedDate = startDate.ToString("MMMM, yyyy") 
       }); 
      } 
      return View("List",list); 
     } 

и это мнение

@model IList<Blog.Web.UI.ViewModels.ArchiveViewModel> 

    @foreach (var item in Model) 
    { 

      @Html.ActionLink(item.FormattedDate, "Post", "Archive", new { month = item.Month, year = item.Year }, null) 

    } 

выход этого результата действия, как это

November, 2012 
December, 2012 
January, 2013 
February, 2013 
March, 2013 
April, 2013 
May, 2013 
June, 2013 

но я хотите иметь в выходе что-то вроде этого

June, 2013 
    May, 2013 
    April, 2013 
March, 2013 
... 
November, 2012 

как я могу это сделать ??

+0

Как вы получили эту ошибку? ** не может назначить void локальной переменной! ** –

ответ

1

Вы создаете список в обратном направлении. Вы можете сортировать его в любом случае, как описано другими, или вы можете сделать это правильно в первый раз.

public ActionResult List() 
     { 
      var currentDate = DateTime.Now; 
      var list = new List<ArchiveViewModel>(); 
      for (var startDate = currentDate; startDate >= new DateTime(2012, 11, 1); startDate = startDate.AddMonths(-1)) 
      { 
       list.Add(new ArchiveViewModel 
       { 
        Month = startDate.Month, 
        Year = startDate.Year, 
        FormattedDate = startDate.ToString("MMMM, yyyy") 
       }); 
      } 
      return View("List",list); 
     } 
2
var newList = list.Reverse(); //This will change the order of all records 

или

var newList = list.OrderByDescending(x => x.Year) 
        .ThenBy(x => x.Month) 
        .ToList(); 
+1

Хотя оба ответа (@Nnp) решают проблему, это более ясно о намерении и помогает с читабельностью кода. – mgnoonan

0

вар NewList = list.Reverse();

+0

не может назначить void локальной переменной! –

Смежные вопросы