使用Sitecore版本4(MVC)的Glass Mapper,我需要以下方法调用:
@Html.Glass().RenderImage(Model, x => x.PhotoField, new {cropregion = xmlValue.GetCropRegion()}, true, true)
导致:
<img src="/sitecore/shell/-/media/Default-Website/cover.jpg?h=550&w=1600&la=en&hash=2986CA8291803D4A8EAC3B5A1C276E27D4877DCC&cropregion=534,11,1348,548" width="1600" height="550" />
当前,RenderImage调用将导致
cropimage
作为属性而不是图像的查询字符串添加。似乎有一个值列表,如果在RenderImage中传递,这些值将作为查询字符串参数而不是属性添加,并且该列表似乎在
Config
类别:
ImageQueryString = new HashSet<string>(new[]
{
ImageParameterKeys.OUTPUT_METHOD,
ImageParameterKeys.ALLOW_STRETCH,
ImageParameterKeys.IGNORE_ASPECT_RATIO,
ImageParameterKeys.SCALE,
ImageParameterKeys.MAX_WIDTH,
ImageParameterKeys.MAX_HEIGHT,
ImageParameterKeys.THUMBNAIL,
ImageParameterKeys.BACKGROUND_COLOR,
ImageParameterKeys.DATABASE,
ImageParameterKeys.LANGUAGE,
ImageParameterKeys.VERSION,
ImageParameterKeys.DISABLE_MEDIA_CACHE,
ImageParameterKeys.WIDTH,
ImageParameterKeys.HEIGHT
});
所以,我的问题是:对我来说,将“裁剪区域”添加到这个图像参数密钥哈希集中的最佳方法是什么?我是否应该编写自己的配置文件,并将其替换为stock Glass Mapper配置类?或者,在初始化Glass时,我是否可以在这个HashSet中插入另一个值?