我正在使用Sitecore MVC網站和控制器,我試圖以編程方式填充Glass.Mapper.Sc.Fields.Image
類的Src
屬性。然而,這是煩人,只有一個公共的getter和一個內部setter聲明:如何以編程方式創建Glass.Mapper.Sc.Fields.Image類的實例?
public string Src { get; internal set; }
還要注意的是,只有在這個類參數的構造函數。因此,必須有另一種方法來在內部設置這個值,但經過在線詳盡的搜索後,我找不到任何有用的東西。
請注意,在控制器中,我具有完全填充圖像對象所需的所有值,包括Sitecore項目ID
。我也可以訪問包含Image對象數據的類型爲Sitecore.Data.Fields.ImageField
的父級Sitecore項目。
我試過以下,但它返回一個空的Image
實例。
SitecoreService sitecoreService = new SitecoreService(database);
Image image = sitecoreService.GetItem<Image>(imageField.InnerField.ID.Guid);
當我嘗試這樣做,它與它的尺寸和Alt
領域設置正確,但不是Src
屬性創建一個新的Image
對象,出於某種原因。
Image img = sitecoreService.GetItem<Image>(imageField.MediaItem.ID.Guid);
var parent = imageField.MediaItem.Parent;
請讓我知道我可以編程方式設置此Image
類的Src
財產,或Sitecore的字段轉換成Image
實例。
UPDATE >>>
我跟着@ DrazenJanjicek的諮詢和管理使用sitecoreService.GetItem
方法,它成功地填充所有Image
屬性爲我父項映射。
我想調用sitecoreService.GetItem的主要問題是,圖像不是包含字段定義的類模型。它是字段定義,但不是項目定義。您可以使用圖像項目模板字段創建自己的類圖像,並與其他項目一起使用它。 –
Anton