0

我在 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>

我已经尝试使用形状跟踪器来创建一个替代视图,但即使我只有@Display(Model.Content)在新视图中,它仍然会在其中放置所有额外的东西,这比我需要在这个视图上显示的要多。形状跟踪器说活动模板是我的新模板,其中只有那个值,所以我不确定所有额外的 HTML 来自这里(尽管它确实显示在形状跟踪器的 HTML 选项卡上)。

如何覆盖此小部件的视图?

4

1 回答 1

0

如果额外的 HTML 仅在您将投影作为小部件发布时出现,则可能是由于通过代码或小部件包装模板添加的包装标签。尝试以下任一方法:

检查 Widget.Wrapper.cshtml 以查看该视图模板是否包含额外的 HTML。我不记得这个形状是否出现在形状跟踪器中,它可能会出现在包装部分下面。

您也可以尝试下面的技巧 - 这在某些情况下可以删除不需要的标记,我将它用于菜单导航小部件。它删除通过代码添加的任何包装器。使您的小部件模板如下所示:

@Display(Model.Content)

@{
    Model.Metadata.Wrappers.Clear();
}
于 2014-06-24T14:38:55.197 回答