如何以编程方式创建 Glass.Mapper.Sc.Fields.Image class 的实例?
How to programmatically create an instance of the Glass.Mapper.Sc.Fields.Image class?
我正在使用 Sitecore MVC 网站和控制器,我正在尝试以编程方式填充 Glass.Mapper.Sc.Fields.Image
class 的 Src
属性。然而,令人恼火的是它只用 public getter 和内部 setter:
声明
public string Src { get; internal set; }
另请注意,此 class 中只有一个无参数构造函数。因此必须有另一种方法可以在内部设置这个值,但在网上进行详尽搜索后,我找不到任何有效的方法。
请注意,在控制器中,我拥有完全填充图像对象所需的所有值,包括 Sitecore 项目 ID
。我还可以访问类型为 Sitecore.Data.Fields.ImageField
的父级 Sitecore 项目,其中包含图像对象的数据。
我尝试了以下方法,但它 returns 是一个空的 Image
实例。
SitecoreService sitecoreService = new SitecoreService(database);
Image image = sitecoreService.GetItem<Image>(imageField.InnerField.ID.Guid);
当我尝试这个时,它创建了一个新的 Image
对象,其尺寸和 Alt
字段设置正确,但 Src
属性原因。
Image img = sitecoreService.GetItem<Image>(imageField.MediaItem.ID.Guid);
var parent = imageField.MediaItem.Parent;
请告诉我如何以编程方式设置此 Image
class 的 Src
属性 或将 Sitecore 字段转换为 Image
实例.
更新>>>
我听从了@DrazenJanjicek 的建议,并设法使用 sitecoreService.GetItem
方法映射父项,该方法成功地为我填充了所有 Image
属性。
这段代码对我有用:
var image = new Image() {MediaId = mediaItem.ID.ToGuid()};
您应该为图片设置 MediaId。
我认为从 Sitecore 项目创建合适的 Glass 类型更有意义,只需使用图像 属性。没有简单的 API 只创建图像类型。您可以这样做,但最终 Glass 将首先创建外部类型。
我正在使用 Sitecore MVC 网站和控制器,我正在尝试以编程方式填充 Glass.Mapper.Sc.Fields.Image
class 的 Src
属性。然而,令人恼火的是它只用 public getter 和内部 setter:
public string Src { get; internal set; }
另请注意,此 class 中只有一个无参数构造函数。因此必须有另一种方法可以在内部设置这个值,但在网上进行详尽搜索后,我找不到任何有效的方法。
请注意,在控制器中,我拥有完全填充图像对象所需的所有值,包括 Sitecore 项目 ID
。我还可以访问类型为 Sitecore.Data.Fields.ImageField
的父级 Sitecore 项目,其中包含图像对象的数据。
我尝试了以下方法,但它 returns 是一个空的 Image
实例。
SitecoreService sitecoreService = new SitecoreService(database);
Image image = sitecoreService.GetItem<Image>(imageField.InnerField.ID.Guid);
当我尝试这个时,它创建了一个新的 Image
对象,其尺寸和 Alt
字段设置正确,但 Src
属性原因。
Image img = sitecoreService.GetItem<Image>(imageField.MediaItem.ID.Guid);
var parent = imageField.MediaItem.Parent;
请告诉我如何以编程方式设置此 Image
class 的 Src
属性 或将 Sitecore 字段转换为 Image
实例.
更新>>>
我听从了@DrazenJanjicek 的建议,并设法使用 sitecoreService.GetItem
方法映射父项,该方法成功地为我填充了所有 Image
属性。
这段代码对我有用:
var image = new Image() {MediaId = mediaItem.ID.ToGuid()};
您应该为图片设置 MediaId。
我认为从 Sitecore 项目创建合适的 Glass 类型更有意义,只需使用图像 属性。没有简单的 API 只创建图像类型。您可以这样做,但最终 Glass 将首先创建外部类型。