私はSitecore MVC Webサイトで作業していますが、コントローラーでGlass.Mapper.Sc.Fields.Image
クラスのSrc
プロパティをプログラムで実装しようとしています。しかし、それがうるさく唯一の公共ゲッターとセッター内部で宣言されました:Glass.Mapper.Sc.Fields.Imageクラスのインスタンスをプログラムで作成する方法
public string Src { get; internal set; }
注意もこのクラスで唯一のパラメータなしのコンストラクタがあること。したがって、この値を内部的に設定する別の方法があるに違いありませんが、網羅的な検索をオンラインで行った後は、何かを見つけることができませんでした。
コントローラでは、SitecoreアイテムID
を含め、Imageオブジェクトを完全に埋め込むために必要なすべての値があります。 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
プロパティを設定することができ、またはサイトコアフィールドはImage
インスタンスに変換する方法を教えてください。
UPDATE >>>
私はDrazenJanjicekのアドバイス、@の後、正常に私のためImage
性質のすべてを埋めsitecoreService.GetItem
方法を使用して、親アイテムをマッピングするために管理。
コールsitecoreService.GetItemの主な問題は、Imageがフィールド定義を含むクラスモデルではないことです。フィールド定義ですが、項目定義はありません。イメージアイテムテンプレートフィールドを持つ独自のクラスイメージを作成し、別のアイテムと同じように扱うことができます。 –
Anton