Orchard CMS问题与替代形状总结 - 剃刀

时间:2012-12-04 08:04:32

标签: orchardcms

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

1 个答案:

答案 0 :(得分:1)

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

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