Я создал кучу пользовательских шаблонов для хранения элементов (например, Industries
, Subindustries
и т. Д.) В Sitecore. Теперь я хочу загрузить их в мою модель Sitecore MVC.Sitecore Загрузите все элементы в модель MVC?
Списки расположены в Sitecore> Содержание> Списки. Например, в папке есть папка с именем Страна. Я хочу вернуть все предметы в пределахСтрана папка и заполнить их как неупорядоченный список на мой взгляд.
UPDATE: я реализовал метод Glass.Mapper.Sc предложил ниже. Сейчас он полностью работает.
Это то, что моя рабочая модель выглядит сейчас:
using Glass.Mapper.Sc.Configuration;
using Glass.Mapper.Sc.Configuration.Attributes;
using Sitecore.Data.Items;
using Sitecore.Mvc.Presentation;
using System;
using System.Collections.Generic;
namespace Sitecore.Web.Models
{
public class Registration: IRenderingModel
{
public Rendering Rendering { get; set; }
public Item Item { get; set; }
public Item PageItem { get; set; }
public IEnumerable<CountryChildItem> CountryList { get; set; }
[SitecoreType(AutoMap = true)]
public class CountryItem
{
public virtual IEnumerable<CountryChildItem> Children { get; set; }
}
[SitecoreType(AutoMap = true)]
public class CountryChildItem
{
[SitecoreId]
public virtual Guid Id { get; set; }
[SitecoreInfo(SitecoreInfoType.Path)]
public virtual string Path { get; set; }
[SitecoreField]
public virtual string DisplayName { get; set; }
[SitecoreField]
public virtual string Abbreviation { get; set; }
}
public void Initialize(Rendering rendering)
{
Rendering = rendering;
Item = rendering.Item;
PageItem = PageContext.Current.Item;
}
}
}
и это то, что мой рабочий Контроллер илит выглядит следующим образом:
using Glass.Mapper.Sc;
using Sitecore.Web.Models;
using System.Web.Mvc;
namespace Sitecore.Web.Controllers
{
public class RegistrationController : Controller
{
Registration registrationModel = new Registration();
public ActionResult Index()
{
ISitecoreContext sitecoreContext = new SitecoreContext();
ISitecoreService service = new SitecoreService(sitecoreContext.Database);
Registration.CountryItem countryItem = service.GetItem<Registration.CountryItem>("/sitecore/content/Lists/Country");
registrationModel.CountryList = countryItem.Children;
return View(registrationModel);
}
}
}
и фрагмент моего рабочего зрения:
<ul class="select-menu-options dropdown-menu">
@foreach (var country in Model.CountryList)
{
<li><a href="#">@country.DisplayName</a></li>
}
</ul>
Вопрос очень общий - может быть, список того, что вы уже пытались получить, чтобы получить данные? Многое будет зависеть от настройки вашего дерева контента Sitecore. –
Добавлено обновление, где элементы находятся в дереве. Что касается «списка того, что вы пробовали», вот почему я разместил вопрос. –