交叉邮件: https ://orchard.codeplex.com/discussions/461867
这是完整的场景:我有一个 EventItem 内容项,它有一个 EventItem 部分,其中包含所有自定义字段(介绍文本、议程等)。我有另一部分附加到 EventItem,称为轨道。现在的问题是我想在轨道内添加一个区域,这样我就可以通过动态区域的放置将 EventItem 中的字段渲染到轨道上。我知道我可以提取数据并将其呈现在部件内,但我希望它灵活并且更喜欢使用放置/区域。
我知道动态区域很容易与替代品一起使用,例如我的Content-EventItem.Detail替代品中的以下一个:
@Display(Model.ImageArea)
但是,我的部分使用视图模型,因此我需要预定义我使用的任何属性/对象。我也读过这个博客,但它不起作用,或者我错过了一些东西: http ://weblogs.asp.net/bleroy/archive/2011/06/30/so-what-are-zones-really .aspx
这是我的完整代码(省略了不相关的代码部分):
轨道部分模板
@{
Func<dynamic, dynamic> Zone = x => Display(x);
}
<div id="Overview-Tab" class="track-tab">
@Zone(Model.Overview)
</div>
跟踪零件视图模型
public class DisplayAllViewModel
{
//public Shape Overview { get; set; }
public object Overview { get; set; }
public List<TrackItem> Tracks { get; set; }
}
EventItem 的放置
<Match ContentType="EventItem">
<Match DisplayType="Detail">
<Place
Fields_Sections="Overview:1"
Parts_Tracks="Content:2.5.6" />
</Match>
</Match>
当我使用概览区域时,部分字段根本不显示。
任何建议或信息将不胜感激。谢谢!