我使用Bootstrap主题通过Shape tracer模块创建了一个替代形状。我为这种类型创建了许多字段。我创建的自定义类型称为“BooksForSale”。我可以使用以下代码显示作者:
<p>@Model.ContentItem.BooksForSale.Author.Value</p>
很好。
但是,我想显示此类型的主体(此部分已添加)并仅显示前150个字符。我使用了以下内容:
@{
Orchard.ContentManagement.ContentItem contentItem = Model.ContentPart.ContentItem;
string bodyHtml = Model.Html.ToString();
var body = new HtmlString(Html.Excerpt(bodyHtml, 500).ToString().Replace(Environment.NewLine, "</p>" + Environment.NewLine + "<p>"));
}
<div class="post-description">
<p>@body</p>
</div>
@Html.ItemDisplayLink(T("Read More...").ToString(), contentItem)
由于阅读更多行而作者显示正常,因此崩溃。
我从“Parts.Common.Summary.cshtml”中删除了它 - 它可以在那里工作。
我想要的是显示正文的前150个字符,并显示链接“阅读更多...”并链接到实际的内容项目。
不确定是否有人可以在这里提供帮助,但我想我可能会问......
SIMON
答案 0 :(得分:1)
如果你指定 它崩溃了,那真的非常有用。看到您的第一个代码示例如何工作,我怀疑您需要仅Model.ContentPart.ContentItem
替换Model.ContentItem
。第二行在Parts.Common.Body.Summary.cshtml中正常工作,因为Model
是正文部分。你复制它的地方,可能是另一部分(但你没有提供足够的细节让我知道:你甚至没有给出你创建的模板替代品的名称)。所以你需要做的就是将它投射到身体部位,如下所示:
string bodyHtml = contentItem.As<BodyPart>().Html.ToString();