2013-04-18 139 views
0

所以我寫了一個簡單的模塊,並通過AdminMenu顯示特定的ContentItems列表。除尋呼機外,這一切都正常工作。該尋呼機正在顯示全部 ContentItems的計數,而不是過濾的列表。我確信這很簡單,我錯過了,但我無法弄清楚。果園尋呼機爲模塊管理

這裏是我的控制器代碼:

public ActionResult List(ListContentsViewModel model, PagerParameters pagerParameters) { 
     var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); 
     var query = _contentManager.Query<EventPart>(VersionOptions.Latest); 

     switch (model.Options.OrderBy) { 
      case ContentsOrder.Modified: 
       query.OrderByDescending<CommonPartRecord>(cr => cr.ModifiedUtc); 
       break; 
      case ContentsOrder.Published: 
       query.OrderByDescending<CommonPartRecord>(cr => cr.PublishedUtc); 
       break; 
      case ContentsOrder.Created: 
       query.OrderByDescending<CommonPartRecord>(cr => cr.CreatedUtc); 
       break; 
     } 

     var pagerShape = Shape.Pager(pager).TotalItemCount(query.Count()); 
     var pageOfContentItems = query.Slice(pager.GetStartIndex(), pager.PageSize).ToList(); 

     var list = Shape.List(); 
     list.AddRange(pageOfContentItems.Select(ci => _contentManager.BuildDisplay(ci, "SummaryAdmin"))); 

     dynamic viewModel = Shape.ViewModel() 
           .ContentItems(list) 
           .Pager(pagerShape) 
           .Options(model.Options); 

     // Casting to avoid invalid (under medium trust) reflection over the protected View method and force a static invocation. 
     return View((object)viewModel); 
    } 

我在做什麼錯?

謝謝!

+0

我有一種感覺,它可能會用'.Query '做,但我一直無法弄清楚它應該是什麼。 – justrhysism

回答

0

好的,爲了文件的緣故;當我評論說我認爲這與.Query<EventPart>有關時,我是對的。我不知道它背後的邏輯,但所需的查詢是:

var query = _contentManager.Query<EventPart, EventPartRecord>(VersionOptions.Latest); 

...用的PartRecord參考。

如果有人可以提供關於它背後的邏輯的評論,所以我(和其他讀者)可以有一個更好的理解,這將是太棒了!

+0

如果有人提供關於這個果園魔法的原因和方法的解釋,我會接受他們的回答:) – justrhysism