我正在使用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