我在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
at 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](Expression
1字段,Expression`1 standardOutput,T模型,对象参数,上下文上下文,数据库数据库,TextWriter编写器)
有人已经体验过这个或者知道我为什么会出现这个错误吗?
由于
答案 0 :(得分:0)
我认为这意味着Glass无法解析LinkItem模型的模板 而不是:
[SitecoreType(AutoMap = true)]
public class LinkItem : IBaseTemplate
尝试明确定义模板ID:
[SitecoreType(TemplateId = "{your-template-guid}", AutoMap = true)]
public class LinkItem : IBaseTemplate
答案 1 :(得分:0)
我认为这可能是一个错误,你可以将它作为一个问题记录在github上。