我在Sitecore中设置了一个内部链接,我试图使用Glass.Mapper映射该字段,但它只是一直空着,我不知道是什么我做错了。
Sitecore中的模板非常简单:
链接的来源设置为仅允许基于'系统'要创建的模板。
在我的代码中,我设置了一个对象:
namespace Playground.GlassObjects
{
public partial class Status
{
public virtual string Description { get; set; }
public virtual string StatusCode { get; set; }
public virtual Glass.Mapper.Sc.Fields.Link System { get; set; }
}
}
基本上这样使用的是:
public void DoStuff(Sitecore.Data.Items.Item item)
{
var status = item.GlassCast<Status>();
this.DoOtherStuff(status);
}
我遇到的是glassObj.Description
,glassObj.StatusCode
正在按照我想要/期望的方式接线,但glassObj.System
不是。
谁能告诉我我在这里做错了什么?我现在感到很茫然,所有的魔力都在幕后进行。
答案 0 :(得分:4)
Glass.Mapper.Sc.Fields.Link类用于处理“常规链接”字段。内部链接字段将值存储为路径,例如/ sitecore / content / home / events。这意味着它与Link类不兼容。
相反,您应该将其映射到您创建的另一个类。
public partial class Status
{
public virtual string Description { get; set; }
public virtual string StatusCode { get; set; }
public virtual MySystem System { get; set; }
}
public class MySystem{
public virtual string Url { get; set; }
public virtual string MyField { get; set; }
}