0

我在visual studio中具有以下结构作为模板:

在一个页面下,我有一个或多个链接根

[SitecoreType(TemplateId = "{4AAA9A10-36C2-484F-A648-2BEF349F0052}", AutoMap = true)]
public class LinkRoot : IBaseTemplate
{
    [SitecoreChildren(InferType = true)]
    public virtual IEnumerable<LinkItem> Children { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateId)]
    public virtual Guid TemplateId { get; set; }
    public Guid Id { get; set; }
    public string Language { get; set; }
    public ItemUri Uri { get; set; }
    public int Version { get; private set; }


}

在链接根下我有 LinkItems

[SitecoreType(AutoMap = true)]
public class LinkItem : IBaseTemplate
{
    [SitecoreField("Link Name")]
    public virtual string LinkName { get; set; }

    [SitecoreField("Link")]
    public virtual Link Link { get; set; }

    public Guid Id { get; set; }
    public string Language { get; set; }
    public ItemUri Uri { get; set; }
    public int Version { get; private set; }
}

我在这样的视图中显示这些项目:

 @foreach (var link in Model.Children.Where(o => o.TemplateId.Equals(TemplateIDs.LinksRoot.Guid)))
    {
        foreach (var linkChildren in link.Children)
        {
            using (BeginRenderLink(linkChildren, x => x.Link, isEditable: true))
            {
        @Editable(linkChildren, x => x.LinkName)
            }
        }
    }

效果很好,我可以看到带有好名字的链接等,但是当我转到页面编辑器时,我收到了这个错误:

值不能为空。参数名称:objectToSwitchTo

在 Sitecore.Diagnostics.Assert.ArgumentNotNull(Object argument, String argumentName) 在 Sitecore.Common.Switcher 2.Enter(TValue objectToSwitchTo) at Sitecore.Data.Items.ContextItemSwitcher..ctor(Item item) at Glass.Mapper.Sc.GlassHtml.MakeEditable[T](Expression1 字段,Expression`1 标准输出,T 模型,对象参数,上下文上下文,数据库数据库,TextWriter 编写器)

是否有人已经经历过或知道我为什么会出现此错误?

谢谢

4

2 回答 2

0

我认为这意味着 Glass 无法解析 LinkItem 模型的模板。
代替:

[SitecoreType(AutoMap = true)]
public class LinkItem : IBaseTemplate

尝试显式定义模板 ID:

[SitecoreType(TemplateId = "{your-template-guid}", AutoMap = true)]
public class LinkItem : IBaseTemplate
于 2014-03-02T16:16:45.047 回答
0

我认为这可能是一个错误,您可以将其作为问题登录到 github 上。

于 2014-03-13T13:37:57.893 回答