.net Orchard中最近博客帖子的自定义视图

.net Orchard中最近博客帖子的自定义视图,.net,asp.net,asp.net-mvc,razor,orchardcms,.net,Asp.net,Asp.net Mvc,Razor,Orchardcms,我已经搜索并尝试了2天来更改我主页上显示的RecentBlogPosts内容类型的视图。我想显示文章的标题和短语 我已经找到了一个视图,显示了每篇文章的标题,但是我还没有找到模型中其他部分的名称,或者如何提取文本 非常感谢您的帮助 @using Orchard.ContentManagement; @using Orchard.Core.Routable.Models; @using Contrib.Hyperlink.Fields; @{ IEnumerable<object&g

我已经搜索并尝试了2天来更改我主页上显示的RecentBlogPosts内容类型的视图。我想显示文章的标题和短语

我已经找到了一个视图,显示了每篇文章的标题,但是我还没有找到模型中其他部分的名称,或者如何提取文本

非常感谢您的帮助

@using Orchard.ContentManagement;
@using Orchard.Core.Routable.Models;
@using Contrib.Hyperlink.Fields;
@{


  IEnumerable<object> blogPosts = Model.ContentItems.ContentItems;
}
@if (blogPosts == null || blogPosts.Count() < 1)
{
    <p>@T("No posts.")</p>
}
else
{
   <div class="content-items">
   @foreach (dynamic post in blogPosts)
   {
            string title = post.Title;
            ContentItem item = post.ContentItem;

   <div class="blogpost" style="width: 300px; padding-left: 15px; float: left;">
         <p class="content-item-summary">@Html.ItemDisplayLink(title, item)</p>
   </div>

   }
   </div>
}
@使用Orchard.ContentManagement;
@使用Orchard.Core.Routable.Models;
@使用Contrib.Hyperlink.Fields;
@{
IEnumerable blogPosts=Model.ContentItems.ContentItems;
}
@if(blogPosts==null | | blogPosts.Count()<1)
{
@T(“无职位”)

} 其他的 { @foreach(blogPosts中的动态帖子) { 字符串标题=post.title; ContentItem=post.ContentItem;

@Html.ItemDisplayLink(标题,项目)

} }

上面的代码(主要)来自的,为此我感谢他。

ContentItem是一个BlogPost内容项,其中包含(来自Orchard.Blogs.Models命名空间)。因此,您可以使用它的任何属性—签出指向我上面提供的源代码的链接

此部分具有Text属性,该属性从引擎盖下相应的BodyPart返回Html(BlogPost类型也附加了该属性)。 顺便说一句,记住使用@Html.Raw(part.Text)来显示获取的内容

还有一件事-为了让生活更轻松,我宁愿将迭代对象转换为blogpostart,以获得Intellisense:

@foreach (var post in blogPosts.Select(p => ((IContent)p.ContentItem).As<BlogPostPart>())) 
{ 
    ... 
}
@foreach(blogPosts.Select(p=>((IContent)p.ContentItem.As())中的var post)
{ 
... 
}

HTH

您可能希望尝试Orchard 1.1(下周到期)中的形状跟踪功能。其中的model选项卡将使您能够深入研究对象,并找出显示几乎所有内容的语法。

您好,谢谢您的回复。不幸的是,使用上述foreach会导致:
code
无法将类型为“IShapeProxy722a7dd4a4ce481a9e164719389c0d7c”的对象强制转换为类型为“Orchard.ContentManagement.IContent”<代码>代码另外,是@Html.Raw(item.blogpostart.Text)corect吗?啊,我的错-我编辑了代码,现在就可以工作了。该部分位于post.ContentItem属性ofc:)中。否,@Html.Raw(item.blogpostart.Text)不正确。如果在我上面写的foreach循环中使用它,它应该看起来像@Html.Raw(post.Text)使用修改后的foreach会导致:编译器错误消息:CS1061:“object”不包含“ContentItem”的定义,并且找不到接受“object”类型的第一个参数的扩展方法“ContentItem”(您是否缺少using指令或程序集引用?)!!(非常感谢@Html.Raw(post.Text)@foreach(blogPosts中的动态post){string title=post.title;ContentItem=post.ContentItem;var thething=((IContent)post.ContentItem).As();@Html.ItemDisplayLink(标题,项)

@Html.Raw(thething.Text)}}别担心……我正在数发布的日子,希望能有更多的功能!感谢大家提醒!形状跟踪功能是一个真正的生命保护器!!!谢谢!祝贺你们,已经有了真正的改进。