Sitecore Glass Mapper (v4):通过 RenderImage 添加自定义查询字符串参数
Sitecore Glass Mapper (v4): Add custom query string parameter via RenderImage
使用 Glass Mapper for Sitecore 版本 4 (MVC),我需要调用以下方法:
@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 中传递,将被添加为查询字符串参数而不是属性,并且这个列表似乎在 main Config
class:[=15 中定义=]
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
});
所以,我的问题是:将 "cropregion" 添加到此图像参数键哈希集的最佳方法是什么?我是否应该编写自己的配置文件并将其替换为现有的 Glass Mapper 配置 class?或者有什么方法可以让我在初始化 Glass 时向这个 HashSet 中插入另一个值?
我认为您应该能够只在 GlassMapperScCustom.CreateResolver
方法中添加一行。试试这个:
public static IDependencyResolver CreateResolver(){
var config = new Glass.Mapper.Sc.Config();
config.ImageQueryString.Add("cropregion");
var dependencyResolver = new DependencyResolver(config);
// add any changes to the standard resolver here
return dependencyResolver;
}
使用 Glass Mapper for Sitecore 版本 4 (MVC),我需要调用以下方法:
@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 中传递,将被添加为查询字符串参数而不是属性,并且这个列表似乎在 main Config
class:[=15 中定义=]
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
});
所以,我的问题是:将 "cropregion" 添加到此图像参数键哈希集的最佳方法是什么?我是否应该编写自己的配置文件并将其替换为现有的 Glass Mapper 配置 class?或者有什么方法可以让我在初始化 Glass 时向这个 HashSet 中插入另一个值?
我认为您应该能够只在 GlassMapperScCustom.CreateResolver
方法中添加一行。试试这个:
public static IDependencyResolver CreateResolver(){
var config = new Glass.Mapper.Sc.Config();
config.ImageQueryString.Add("cropregion");
var dependencyResolver = new DependencyResolver(config);
// add any changes to the standard resolver here
return dependencyResolver;
}