Sitecore 8.0意外的数据源输出

时间:2015-09-04 13:28:59

标签: asp.net-mvc sitecore sitecore-mvc sitecore8

我正在尝试显示一个包含存储桶中所有项目列表的表。我创建了以下ActionResult:

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

我不确定为什么要返回我的查询的标题...我生成了多少次“中断”项目的适当次数,但这显然不是所需的输出。我应该看到表中显示的实际“中断”内容项的数据。任何人都可以诊断我的问题吗?

1 个答案:

答案 0 :(得分: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>
}

此处有更多信息:Nuitka