如果我在参数模板中有一个图像字段,在C#中获取图像的URL涉及哪些步骤?
最佳答案
@mdresser提出了关于应该和不应该作为渲染参数的有效观点。但是,我认为Sitecore没有故意使在参数模板中使用图像字段变得困难。他们只是在现有键值对呈现参数功能之上构建了参数模板功能。
如果渲染参数模板上图像字段的名称为BackgroundImage
,则可以使用以下代码获取所选图像的URL:
var imageId = XmlUtil.GetAttribute("mediaid", XmlUtil.LoadXml(this.Parameters["BackgroundImage"]));
MediaItem imageItem = Sitecore.Context.Database.GetItem(imageId);
backgroundImageUrl = MediaManager.GetMediaUrl(imageItem);
如果您尚未为子布局的基类提供Parameters属性,则还需要添加以下内容:
private NameValueCollection parameters;
public virtual NameValueCollection Parameters
{
get
{
if (this.parameters == null)
{
var parameters = this.Attributes["sc_parameters"];
this.parameters = string.IsNullOrEmpty(parameters)
? new NameValueCollection()
: WebUtil.ParseUrlParameters(parameters);
}
return this.parameters;
}
}
关于Sitecore-参数模板中的“图像”字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19824397/