Я нахожусь в процессе настройки веб-сайта Umbraco 8 и столкнулся с каким-то странным поведением.В проекте используется .NET 4.7.2.
По сути, у меня есть IENumerable типа Event
, простой список содержимого, которое я хотел бы отобразить в списке.Однако всякий раз, когда я что-то делаю со списком (в котором есть элементы), список немедленно очищается.Это включает в себя просто присвоение другой переменной, проверку на нулевое значение и т. Д.
Я не верю, что это проблема 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
Спасибо,
Бен