我正在尝试显示一个包含存储桶中所有项目列表的表。我创建了以下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;
}
}
}
最后,这是我在页面上看到的内容:
我不确定为什么要返回我的查询的标题...我生成了多少次“中断”项目的适当次数,但这显然不是所需的输出。我应该看到表中显示的实际“中断”内容项的数据。任何人都可以诊断我的问题吗?
答案 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。