2015-09-04 2 views
2

Я пытаюсь показать таблицу, содержащую список всех элементов в ведре. Я создал следующий ActionResult:Sitecore 8.0 Неожиданный источник данных

public ActionResult Outage() 
{ 
    if (IsDataSourceItemNull) return null; 

    IEnumerable<SimpleItem> items = DataSourceItems.Select(x => new SimpleItem(x)).Where(x => SiteConfiguration.DoesItemExistInCurrentLanguage(x.Item)); 
    SimpleItemList results = new SimpleItemList(DataSourceItem["Title"], items); 
    return !items.IsNullOrEmpty() ? View(results) : ShowListIsEmptyPageEditorAlert(); 
} 

Код фоновым для рендеринга контроллера заключается в следующем:

@model LaunchSitecore.Models.SimpleItemList 

<div> 
    <table class="table table-striped"> 
     <thead> 
      <tr> 
       <th>Title</th> 
       <th>Date</th> 
       <th>Description</th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach (var item in Model.Items) 
      { 
       <tr> 
        <td>@Html.Sitecore().Field("Title")</td> 
        <td>@Html.Sitecore().Field("Date")</td> 
        <td>@Html.Sitecore().Field("Description")</td> 
       </tr> 
      } 
     </tbody> 
    </table> 
</div> 

И модель выглядит следующим образом:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using Sitecore.Mvc; 
using Sitecore.Mvc.Presentation; 
using System.Xml.Serialization; 
using Sitecore.Data.Items; 
using Sitecore.Links; 
using LaunchSitecore.Configuration; 

namespace LaunchSitecore.Models 
{ 
    public class SimpleItemList 
    { 
     public string Title { get; protected set; } 
     public IEnumerable<SimpleItem> Items { get; protected set; } 

     public SimpleItemList(string title, IEnumerable<SimpleItem> items) 
     { 
      Title = title; 
      Items = items; 
     } 
    } 
} 

Я использую этот запрос как источник данных в моем рендеринге: query

query results

Наконец, вот что я вижу на моей странице:

final output

Я не знаю, почему название моего запроса возвращается ... Он генерируется необходимое количество раз сколько у меня элементов «отключения», но это явно не желаемый результат. Я должен увидеть данные из фактических элементов контента «outage», отображаемых в таблице. Может ли кто-нибудь диагностировать мою проблему?

ответ

1

Кажется, если вы не предоставите пункт , а также имя поля, то это будет выглядеть для этого поля на элементеконтекста, который является запросом, я думаю. Таким образом, вы можете попробовать поставлять item, а также, например, так:

@foreach (var item in Model.Items) 
{ 
    <tr> 
     <td>@Html.Sitecore().Field("Title", item)</td> 
     <td>@Html.Sitecore().Field("Date", item)</td> 
     <td>@Html.Sitecore().Field("Description", item)</td> 
    </tr> 
} 

Подробнее здесь: Rendering Content.

+0

Это сделало трюк. Спасибо! – mrg1023

+0

Coolio, без проблем :-) – davmos

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