果园 CMS 问题与替代形状摘要 - 剃须刀



我使用 Bootstrap 主题通过形状跟踪器模块创建了一个替代形状。 我为这种类型创建了多个字段。我创建的自定义类型称为"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 个字符,并有一个链接"阅读更多..."显示并链接到实际内容项。

不确定有人可以在这里提供帮助,但我想我可能会问...

西蒙

如果您指定它如何崩溃,那将非常非常有帮助。看到您的第一个代码示例的工作原理,我怀疑您需要仅用Model.ContentItem替换Model.ContentPart.ContentItem。第二行在 Parts.Common.Body.Summary.cshtml 中工作正常,因为Model是正文部分。在您复制的地方,它可能是另一部分(但您没有提供足够多的细节让我知道:您甚至没有提供您创建的模板替代名称)。所以你需要做的是把它投射到身体部位,就像这样:

string bodyHtml = contentItem.As<BodyPart>().Html.ToString();

最新更新