2015-04-03 87 views
1

我已經爲所有項目創建了Glassmapper模型,我的Sitecore項目中有一個droplink。 以下是具有droplink字段的項目的模型。Sitecore Droplink設置屬性不起作用

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

映射項字段是在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; } 
} 

我當我訪問01時獲取MapperItem屬性中的LinkedItem對象對象,但如果我嘗試設置MapperItem屬性它不保存它在相應的字段(「映射項目」字段),但我沒有得到任何錯誤。

我用下面的代碼來設置droplink

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

請參閱[「應該在其標題中包含」標籤?「](http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles ),那裏的共識是「不,他們不應該」! – 2015-04-03 08:35:14

+1

您是否按照說明http://www.glass.lu/Mapper/Sc/Tutorials/Tutorial11?您還需要在您的LinkedItem類中設置「SitecoreType」屬性,如 [SitecoreType(TemplateId =「GUID HERE」,AutoMap = true)] – 2015-04-03 11:47:36

+0

@AhmedOkour:但SitecoreType不可用,SitecoreClass是可用屬性。 – Bevin 2015-04-03 14:31:27

回答

1

它看起來像你的一個老版本的玻璃映射的?嘗試添加模板參考,像這樣:

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

在它應該被設置爲最新版本如下:

  • 的命名空間應該是:使用Glass.Mapper.Sc.Configuration.Attributes;

  • 的類應該有一個屬性:[SitecoreType(自動地圖=真)]

此鏈接包含正確implmentation的一個很好的屏幕截圖FO以上:http://www.glass.lu/en/Mapper/Sc/Tutorials/Tutorial11.aspx

要檢查的事情:

相關問題