Sitecore Droplink设置属性不起作用

时间:2015-04-03 08:24:45

标签: c# asp.net sitecore sitecore6 glass-mapper

我为所有项目创建了Glassmapper模型,我的Sitecore项目中有一个droplink。 以下是具有droplink字段的项目的模型。

    [SitecoreClass]
   public class Field:BaseItem
    {
        [SitecoreField("Mapper Item")]
        public virtual LinkedItem MapperItem { get; set; }                
    }

Mapper Item字段是sitecore中的droplink字段, BaseItem类具有所有sitecore基本属性,如:

        [SitecoreId]
    public virtual Guid Id { get; set; }

    [SitecoreInfo(SitecoreInfoType.Name)]
    public virtual string Name { get; set; }

    [SitecoreInfo(SitecoreInfoType.DisplayName)]
    public virtual string DisplayName { get; set; }

    [SitecoreInfo(SitecoreInfoType.Url)]
    public virtual string Url { get; set; }

    [SitecoreInfo(SitecoreInfoType.Path)]
    public virtual string Path { get; set; }

    [SitecoreInfo(SitecoreInfoType.ContentPath)]
    public virtual string ContentPath { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateId)]
    public virtual Guid TemplateId { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateName)]
    public virtual string TemplatedName { get; set; }

    [SitecoreField("__created")]
    public virtual DateTime Created { get; set; }

    [SitecoreField("__updated")]
    public virtual DateTime Updated { get; set; }

LinkedItem具有以下属性:

[SitecoreClass]
public class LinkedItem:BaseItem
{
    [SitecoreField("Field ID")]
    public virtual string FieldID { get; set; }
    [SitecoreField("Display Name")]
    public virtual string DisplayName { get; set; }
    [SitecoreField("Field Type")]
    public virtual string FieldType { get; set; }
}

当我访问LinkedItem对象时,我在MapperItem属性中获取Field对象,但如果我尝试设置MapperItem属性,则不将其保存在相应的字段(“Mapper Item”字段),但我没有收到任何错误。

我正在使用以下代码设置droplink

fieldItem.MapperItem = ItemUtility.GetItem<LinkedItem>(new Guid("some valid guid available in the droplist source"));

1 个答案:

答案 0 :(得分:1)

看起来你是旧版的Glass mapper吗?尝试添加模板引用,如下所示:

[SitecoreClass(TemplateId = "{5281CBCF-1A2D-413A-B182-2854FC6B9176}")]

在最新版本中,应设置如下:

  • 命名空间应为:using Glass.Mapper.Sc.Configuration.Attributes;

  • 这些类应该有一个属性:[SitecoreType(AutoMap = true)]

此链接包含上述正确实施的良好屏幕截图:http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial11.aspx

要检查的事项: