我正在建立一个 Umbraco 8 网站并且遇到了一些奇怪的行为。该项目使用.NET 4.7.2。
基本上,我有一个 IENumerable 类型Event
,一个简单的内容列表,我想渲染到一个列表中。但是,每当我对列表(有项目)做任何事情时,列表都会立即被清空。这包括简单地分配给不同的变量、检查 null 等。
我不相信这是 Umbraco 8 的问题,但为了清楚起见,我目前正在通过 Surface Controller 运行并通过在我的视图中调用以下内容来呈现它:
@Html.Action("RenderUpcoming", "Events")
这是控制器:
using Index.Models.Events;
using Index.Models.PublishedContent;
using Papermoon.Umbraco.Kupo.Core.Services.Interfaces;
using System;
using System.Linq;
using System.Web.Mvc;
using Umbraco.Web.Mvc;
namespace Index.Web.Controllers.Surface
{
public class EventsController : SurfaceController
{
private readonly KupoGeneralSettings _kupoGeneralSettings;
public EventsController(IKupoSettingsService kupoSettingsService)
{
_kupoGeneralSettings = kupoSettingsService.GetSettings<KupoGeneralSettings>("kupoGeneralSettings");
}
public ActionResult RenderUpcoming()
{
UpcomingEventsModel model = new UpcomingEventsModel();
model.Title = "Upcoming Events";
model.Events = Umbraco.ContentAtXPath("root/homepage/events/event").Select(x => new Event(x));
model.Events = model.Events.Where(x => x.StartDate > DateTime.Now).OrderBy(x => x.StartDate).Take(3);
model.TotalEvents = model.Events.Count();
model.EventListingLink = _kupoGeneralSettings.EventListingLink;
return PartialView("~/Views/Partials/Events/UpcomingEvents.cshtml", model);
}
}
}
所以在这里,当我打电话时model.Events = model.Events.Where(x => x.StartDate > DateTime.Now).OrderBy(x => x.StartDate).Take(3);
- 我有结果然后当我做model.TotalEvents = model.Events.Count();
列表(model.Events)然后是空的。
当我分配给另一个变量时,当我调用时model.Events.Any()
,或者我什至做时,也会发生这种情况Model.Events != null
。
展示这一点可能比告诉它更容易,所以请参阅此发生的随附 gif:https ://i.imgur.com/rE3VAqe.gif
谢谢,
本