我在Orchard(1.8)中设置了自定义内容定义,查询和投影,几乎所有内容都很有效,包括覆盖投影页面URL上的显示视图。我遇到的唯一问题是当我在窗口小部件中放置相同的投影时,我似乎无法弄清楚如何覆盖它的视图。自动生成的HTML是:
<p class="text-field"><span class="name">Name:</span> <span class="value">/** Title from content item **/</span></p>
<p><a href="/Contents/Item/Display/37">more</a></p>
<p>asdfasdfasdrerfwerqaq324f421 <a href="/Contents/Item/Display/37">more</a></p>
<p class="date-time-field date-time-field-date">
<span class="name">Date:</span>
<span class="value">/** Date from content item **/ </span>
</p>
我已经尝试使用Shape跟踪器创建一个替代视图,但即使我在新视图中只有@Display(Model.Content)
,它仍会将所有额外的东西放入其中,这比我需要的更多显示在这个视图上。形状跟踪器说活动模板是我的新模板,其中只包含该值,因此我不确定所有额外的HTML来自何处(尽管它确实显示在Shape跟踪器的HTML选项卡上)。
如何覆盖此窗口小部件的视图?
答案 0 :(得分:0)
如果额外的HTML仅在您将投影作为窗口小部件发布时出现,则可能是由于通过代码或窗口小部件包装器模板添加了包装器标签。尝试以下任一方法:
检查Widget.Wrapper.cshtml以查看该视图模板是否包含额外的HTML。我不记得这个形状是否出现在形状描绘器中,它可能会显示在包装部分下面。
你也可以尝试下面的技巧 - 这可以在某些情况下删除不需要的标记,我将它用于菜单导航小部件。它删除了通过代码添加的所有包装器。使您的小部件模板看起来像这样:
@Display(Model.Content)
@{
Model.Metadata.Wrappers.Clear();
}