В следующем коде эта строка всегда возвращает нуль:
var datasource = GetContextItem<IGlassBase>(inferType: true);
Это класс:
using System.Web.Mvc;
using Jabberwocky.Glass.Models;
using CCO.Feature.Global.Services;
using CCO.Foundation.Multisite.Configuration;
using CCO.Foundation.Mvc.Controllers;
using Jabberwocky.Autofac.Attributes;
namespace CCO.Feature.Global.Areas.CCO.Controllers
{
public class MetadataController : CCOController
{
[AggregateService]
public interface IDependencies
{
IMetadataService MetadataService { get; set; }
ISitecoreConfigurationManager SitecoreConfigurationManager { get; set; }
}
private readonly IDependencies _dependencies;
public MetadataController(IDependencies dependencies) : base(dependencies?.SitecoreConfigurationManager)
{
_dependencies = dependencies;
}
public MetadataController() : base() { }
public virtual ActionResult HtmlPageTitle()
{
var datasource = GetContextItem<IGlassBase>(inferType: true);
var title = _dependencies.MetadataService.GetHtmlPageTitle(datasource);
return View(new MvcHtmlString(title));
}
public virtual ActionResult Metadata()
{
var datasource = GetContextItem<IGlassBase>(inferType: true);
var model = _dependencies.MetadataService.GetPageMetadata(datasource);
return View(model);
}
public ActionResult CustomHeadHtml()
{
var datasource = GetContextItem<IGlassBase>(inferType: true);
var html = _dependencies.MetadataService.GetCustomHeadHtml(datasource);
return View(new MvcHtmlString(html));
}
}
}
Это работало до обновления GlassMapper до 4.5.0.4 и Jabberwocky до3.0.0.Эти обновления потребовались, когда мы перешли с Sitecore 8.2 на 9.1.