Glass mapper渲染图片数据属性

6

我正在尝试使用RenderImage渲染图像字段。我需要在图片中添加一些data-属性,但似乎无法弄清楚如何实现。我尝试了这个方法,但并没有起作用。

@RenderImage(image, x => x.Image, new RenderingParameters("data-protect=true"), isEditable: true)   

谢谢

2个回答

9

虽然上面的答案是可行的,但我将来会移除对ImageParameters的支持,并转而采用匿名类型支持:

@RenderImage(image, x => x.Image, new { Width = 100}, isEditable: true)

这个变化的原因是,拥有像ImageParameters这样强类型的类会非常限制。使用匿名类型也是其他框架中常见的一种方式,所以它可以与其他人正在做的事情相适应。
更新内容包括数据属性的渲染:
@RenderImage(image, x => x.Image, new { data_protect = "true"}, isEditable: true)

1
问题出在数据保护上,我一直无法让它正常工作。如果您能够添加对带连字符命名的属性的支持,那就太棒了。 - Gabbar
4
Gabbar - 最新夜间版本已经解决了这个问题。您可以像MVC一样使用"data_id"来获取"data-id"。 - Michael Edwards

6

试试这样:

@RenderImage(image, x => x.Image, new ImageParameters { Width = 100}, isEditable: true)

截至最近版本的Glass——唯一可行的解决方案是

@RenderImage(image, x => x.Image, new { Width = 100}, isEditable: true)

此外,您可以查看教程16 - 渲染图片


我已经编辑了我的问题。data-protect是一个自定义属性。我该如何让它显示出来? - Gabbar
@Gabbar,我认为如果不创建一个继承自AbstractParameters的新类是不可能的。您可以在此处检查默认的ImageParameters。只需使用所需的数据实现自定义类即可。https://github.com/mikeedwards83/Glass.Mapper/blob/master/Source/Glass.Mapper.Sc/RenderField/ImageParameters.cs。另一个选项是手动呈现图像(使用src属性),并仅在页面编辑器模式下显示它作为可编辑的。 - nsgocev
好的,那很有道理。我会尝试两种方法。 - Gabbar
@tahatmat 已更新! :) - nsgocev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接