2

我使用 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)

当作者显示正常时,由于 Read more 行而崩溃。

我从“Parts.Common.Summary.cshtml”中提取了这个 - 它在那里工作。

我想要的是显示正文的前 150 个字符,并有一个链接“阅读更多...”显示并链接到实际的内容项。

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

西蒙

4

1 回答 1

1

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

string bodyHtml = contentItem.As<BodyPart>().Html.ToString();
于 2012-12-04T17:54:06.627 回答