2014-06-19 48 views
0

我在Orchard(1.8)中设置了一个自定义内容定义,查询和投影,几乎所有的东西都很好用,包括覆盖投影页面URL上的显示视图。我遇到的唯一问题是,当我将相同的投影放在一个小部件中时,我似乎无法弄清楚如何覆盖它的视图。自动生成的HTML是这样的:覆盖Orchard中的Widget视图

<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选项卡上)。

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

回答

0

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

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

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

@Display(Model.Content) 

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