【问题标题】:Sitecore Droplink set property not workingSitecore Droplink 设置属性不起作用
【发布时间】:2015-04-03 08:24:44
【问题描述】:

我已经为所有项目创建了 Glassmapper 模型,我的一个 Sitecore 项目中有一个下拉链接。 以下是带有 droplink 字段的项目的模型。

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

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

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

当我访问Field 对象时,我在MapperItem 属性中获得了LinkedItem 对象,但是如果我尝试设置MapperItem 属性,它不会将其保存在相应的字段中(“映射器项”字段),但我没有收到任何错误。

我使用下面的代码来设置droplink

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

【问题讨论】:

  • 请参阅"Should questions include “tags” in their titles?",其中的共识是“不,他们不应该”!
  • 您是否按照此处的说明进行操作 glass.lu/Mapper/Sc/Tutorials/Tutorial11 ?您还需要在 LinkedItem 类上设置“SitecoreType”属性,例如 [SitecoreType(TemplateId = "GUID HERE", AutoMap = true)]
  • @AhmedOkour:但是 SitecoreType 不可用,SitecoreClass 是可用属性。
  • 你添加了这个命名空间吗?使用 Glass.Mapper.Sc.Configuration.Attributes ?
  • 添加 Glass.Sitecore.Mapper.Configuration.Attributes,Glass.Mapper.Sc.Configuration.Attributes 不可用。

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


【解决方案1】:

看起来您使用的是旧版本的 Glass 映射器?尝试像这样添加模板引用:

[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

检查事项:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多