I am using Glass Mapper : 4.0.1.8 to map multilist to the IEnumerable
in Sitecore 8. It does returns the number of count in the IEnumerable
correctly but the fields inside that are all mapped to null. Following is the code that I am using:
public void GetPromotedNews()
{
var NewsListingPage = Sitecore.Context.Database.GetItem(new ID(ItemIDS.NewsListingCorporate));
var NewsListingPageItem = NewsListingPage.GlassCast<NewsListingPage>();
foreach (var newslistingcategory in NewsListingPageItem.NewsCategory) //This is returning two results which are correct
{
var item = newslistingcategory.CategoryName; //this is always returning null ?
}
}
public class NewsListingPage
{
[SitecoreField(FieldName = "Page title")]
public string PageTitle { get; set; }
[SitecoreField(FieldName = "Page description")]
public string PageDescription {get; set;}
[SitecoreField(FieldName = "News category", Setting = SitecoreFieldSettings.InferType)]
public virtual IEnumerable<ContentCategory> NewsCategory { get; set; }
}
[SitecoreType(TemplateId = DCP.Resources.TemplateIDS.CategoryTemplateID, AutoMap = true)]
public class ContentCategory : SCItem
{
[SitecoreField(FieldName = "Category name")]
public string CategoryName { get; set; }
[SitecoreField(FieldName = "Category icon")]
public Image CategoryICON { get; set; }
[SitecoreField(FieldName = "text")]
public string Text { get; set; }
}
Try Updating your content category model to have virtual properties
[SitecoreType(TemplateId = DCP.Resources.TemplateIDS.CategoryTemplateID, AutoMap = true)]
public class ContentCategory : SCItem
{
[SitecoreField(FieldName = "Category name")]
public virtual string CategoryName { get; set; }
[SitecoreField(FieldName = "Category icon")]
public virtual Image CategoryICON { get; set; }
[SitecoreField(FieldName = "text")]
public virtual string Text { get; set; }
}