【发布时间】:2017-01-10 09:53:45
【问题描述】:
我希望用户能够使用下拉列表选择背景颜色
我创建了一个新模板,它继承自标准渲染参数作为基本模板,标准值具有 $name 标记
这是模板颜色定义:
ColorName---DropLink---/sitecore/content/Home/Global/Colors
[SitecoreType(TemplateId = "{55DB8F6A-807D-48F8-A3D1-D81037938F13}", AutoMap = true)]
public interface IColor:IContentBase
{
string ColorName { get; set; }
}
我还创建了多个模板实例(红、蓝、绿)
然后我将颜色模板作为参数分配给 ViewRendering。
最后,在cshtml文件中,我尝试读取这个参数
@using Glass.Mapper.Sc
@model INews
<H3> Hot News: </H3>
@{
var rendering = RenderingContext.Current.Rendering;
string id = rendering.Parameters["ColorName"];
var context = new SitecoreContext();
var result=context.GetItem<IColor>(new Guid(id));
}
<div style="background-color: @NewsRepository.GetBackgroundColor(rendering);" class="panel-body">
<br/>
<span>@result.ColorName</span><br/>
@Model.Title
</div>
结果总是 {55DB8F6A-807D-48F8-A3D1-D81037938F13} 而我期望“绿色”。还尝试使用 Sitecore API 代替 GlassMapper,但我仍然得到 Guid。
【问题讨论】:
标签: asp.net-mvc sitecore sitecore8 sitecore-mvc glass-mapper