Orchardcms 为投影抛出实现List.cshtml';ContentManagement.ContentItem';不包含';塔斯帕特';
我已经实现了List.cshtml来为图像库提供自定义显示。这是我第一次尝试用模板覆盖投影,一开始看起来效果不错。然后我注意到,当我尝试访问后端Orchard 1.7上的投影时,会出现以下情况: RuntimeBinderException“Orchard.ContentManagement.ContentItem”没有 不包含“TagsPart”的定义 以下是template List.cshtml中的一些代码:Orchardcms 为投影抛出实现List.cshtml';ContentManagement.ContentItem';不包含';塔斯帕特';,orchardcms,Orchardcms,我已经实现了List.cshtml来为图像库提供自定义显示。这是我第一次尝试用模板覆盖投影,一开始看起来效果不错。然后我注意到,当我尝试访问后端Orchard 1.7上的投影时,会出现以下情况: RuntimeBinderException“Orchard.ContentManagement.ContentItem”没有 不包含“TagsPart”的定义 以下是template List.cshtml中的一些代码: List<TagRecord> uniqueTags = new L
List<TagRecord> uniqueTags = new List<TagRecord>();
List<dynamic> items = Model.Items;
if (items != null && items.Any())
{
foreach (var item in items)
{
if (item != null && item.ContentItem != null)
{
TagsPart part = item.ContentItem.TagsPart;
if (part != null && part.CurrentTags != null)
{
foreach (var t in part.CurrentTags)
{
if (!uniqueTags.Contains(t))
{
uniqueTags.Add(t);
}
}
}
}
}
List uniqueTags=new List();
列表项=模型项;
if(items!=null&&items.Any())
{
foreach(项目中的var项目)
{
if(item!=null&&item.ContentItem!=null)
{
TagsPart部分=item.ContentItem.TagsPart;
if(part!=null&&part.CurrentTags!=null)
{
foreach(部分.CurrentTags中的var t)
{
如果(!uniqueTags.Contains(t))
{
唯一标签。添加(t);
}
}
}
}
}
我对以下几点一无所知,我怀疑这可能是导致错误的原因:
TagsPart part=item.ContentItem.TagsPart;
就会引发上述异常更新:我将其作为一个模块来实现;也就是说,List.cshtml位于一个简单模块的Views文件夹中。如果我将List.cshtml移动到主题中,问题就会消失。但是,我仍然希望使用一个模块,以便布局独立于主题。在投影中,您可以自定义为主题呈现的html或列表中的每个属性。要完成此操作,您需要转到查询,添加新布局,选择所需的属性,然后设置所需的一切 如果查询模块中提供的布局不能满足您的要求,您可以创建自己的布局提供程序,本博客文章给出了一个示例:
Orchard 1.7包含一个名为“Shape”的新查询布局提供程序。我只使用了这个提供程序,给它一个“LightboxSotox”的形状类型,并创建了一个名为“LightboxSotox.cshtml”的视图。我在其他项目中使用了这两种技术。但是,对于复杂的HTML来说,使用布局是一种笨拙的限制,而编写布局提供毕竟,这就是模板的用途!