Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sitecore 使用Glass.Mapper获取内部链接_Sitecore_Sitecore6_Glass Mapper - Fatal编程技术网

Sitecore 使用Glass.Mapper获取内部链接

Sitecore 使用Glass.Mapper获取内部链接,sitecore,sitecore6,glass-mapper,Sitecore,Sitecore6,Glass Mapper,我在Sitecore中设置了一个内部链接,我正在尝试使用Glass.Mapper来映射该字段,但它总是空着,我不确定我做错了什么 Sitecore中的模板非常简单: 链接的源设置为仅允许创建基于“系统”模板的内容的文件夹 public partial class Status { public virtual string Description { get; set; } public virtual string StatusCode { get; set; } p

我在Sitecore中设置了一个内部链接,我正在尝试使用Glass.Mapper来映射该字段,但它总是空着,我不确定我做错了什么

Sitecore中的模板非常简单:

链接的源设置为仅允许创建基于“系统”模板的内容的文件夹

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; }
}
在我的代码中,我设置了一个对象:

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);
}
public void DoStuff(Sitecore.Data.Items.Item)
{
var status=item.GlassCast();
这个。DoOtherStuff(状态);
}
我遇到的是
glassObj.Description
,和
glassObj.StatusCode
正在按照我想要/期望的方式连接,但是
glassObj.System
不是


有人能告诉我我做错了什么吗?我现在不知所措,因为幕后正在发生的所有魔法。

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; }
}

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; }
}

您能确认该字段已设置值吗?如果您查看原始字段值,您会看到什么?@RuudvanFalier我在DoStuff()中设置了一个断点并查看了参数,这就是我看到的:您能确认字段设置了值吗?如果查看原始字段值,您会看到什么?@RuudvanFalier我在DoStuff()中设置了一个断点,并查看了参数,这是我看到的: