gpt4 book ai didi

asp.net - 如何在 Orchard 中设置小部件的样式?

转载 作者:行者123 更新时间:2023-12-04 04:26:56 25 4
gpt4 key购买 nike

我正在尝试在 Orchard 中构建一个主题(转换我拥有的现有模板),但在为博客文件小部件设置样式时遇到了问题。我有一个区域“侧边栏”,我在其中放置了小部件。

为了让它输出我想要的标记,我在我的 View 文件夹中创建了一个新模板:Widget-BlogArchives.cshtml 所有模板都将小部件的内容包装在一个 div 中,如下所示:

<div class="box box_small">
@Display(Model.Content)
</div>

所以我希望所有的小部件内容都在我的 div 中。然而生成的 HTML 看起来像这样:
<article class="widget-blog-archives widget" shape-id="15">
<header shape-id="15">
<h1 shape-id="15">The Archives</h1>
</header>
<div class="box box_small" shape-id="15">
<div class="archives" shape-id="16">
<ul class="archiveMonthList" shape-id="16">
<li class="first last" shape-id="16">
<a href="(shortened)/10" shape-id="16">October 2011 (1)</a>
</li>
</ul>
</div>
</div>
</article>

我不明白整篇文章的包装来自哪里?如何将标题放入我的 div 并将其更改为 a ?

有人还可以解释一下模型中标题“文件”的存储位置吗?我在形状跟踪工具中查看了模型,但找不到它...

谢谢。

更新

正如 Bertrand 解释的那样,我对 Widget-BlogArchives.cshtml 进行了一些更改:
@using Orchard.ContentManagement
@using Orchard.Widgets.Models
@{
Model.Metadata.Wrappers.Clear();
var title = ((IContent)Model.ContentItem).As<WidgetPart>().Title;
}
<div class="box box_small">
<h3>@title</h3>
@Display(Model.Content)
</div>

这现在生成了我想要的 HTML。

最佳答案

此标记来自小部件包装器。可以通过调用 Model.Metadata.Wrappers.Clear() 来抑制包装器。然后,您可以完全从您自己的小部件覆盖中接管渲染。

如果您打开 widget.wrapper.cshtml,您将找到第二个问题的答案:

var title = ((IContent)Model.ContentItem).As<WidgetPart>().Title;

也可以这样做:
 var title = Model.ContentItem.WidgetPart.Title

关于asp.net - 如何在 Orchard 中设置小部件的样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7870349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com