Orchardcms 在Orchard中重写小部件视图

Orchardcms 在Orchard中重写小部件视图,orchardcms,orchardcms-1.8,Orchardcms,Orchardcms 1.8,我在Orchard 1.8中设置了一个自定义的内容定义、查询和投影,几乎所有的功能都很好,包括覆盖投影页面URL上的显示视图。我遇到的唯一问题是,当我将相同的投影放在一个小部件中时,我似乎不知道如何覆盖它的视图。自动生成的HTML如下所示: <p class="text-field"><span class="name">Name:</span> <span class="value">/** Title from content item **/

我在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>
我曾尝试使用形状跟踪器创建一个备用视图,但即使在新视图中只有@DisplayModel.Content,它仍然会将所有额外的内容放在其中,这超出了我在该视图中需要显示的内容。形状跟踪器说活动模板是我的新模板,其中只有该值,因此我不确定所有额外的HTML来自何处,尽管它确实显示在形状跟踪器的HTML选项卡上


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

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

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

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

@Display(Model.Content)

@{
    Model.Metadata.Wrappers.Clear();
}