Asp.net mvc 显示附带的图像和帖子如何使其显示

Asp.net mvc 显示附带的图像和帖子如何使其显示,asp.net-mvc,piranha-cms,Asp.net Mvc,Piranha Cms,最新推文 新闻订阅 @{ var news=新列表(); 使用(var db=new Piranha.DataContext()){ 新闻=db.Posts .Include(p=>p.CreatedBy) .Where(p=>p.Template.Name==“新闻发布类型”) .OrderByDescending(p=>p.Published) .采取(4)措施; } } @foreach(新闻中的var post){ 由@post.CreatedBy.Firstname发布@po


最新推文
新闻订阅
@{   
var news=新列表();
使用(var db=new Piranha.DataContext()){
新闻=db.Posts
.Include(p=>p.CreatedBy)
.Where(p=>p.Template.Name==“新闻发布类型”)
.OrderByDescending(p=>p.Published)
.采取(4)措施;
} 
} 
@foreach(新闻中的var post){

由@post.CreatedBy.Firstname发布@post.Published.Value.ToString(“yyyy-MM-dd”)

@帖子摘录


Like@andreasnico指出,附件是引用的媒体资产id的集合。如果您想显示第一个附件(假设您知道它是一个图像),您可能会这样做

@foreach (var post in news) { 
  <div class="post"> 
    <h2><a href="@UI.Permalink(post.PermalinkId)">@post.Title</a></h2> 
    <p class="meta">Published @post.Published.Value.ToString("yyyy-MM-dd") by @post.CreatedBy.Firstname</p> 
    <p>@post.Excerpt</p> 

    @if (post.Attachments.Count > 0) {
      <img src="@UI.Content(post.Attachments[0])">
    }  
  </div>
}
@foreach(新闻中的var post){

由@post.CreatedBy.Firstname发布@post.Published.Value.ToString(“yyyy-MM-dd”)

@帖子摘录

@如果(post.Attachments.Count>0){ } }
这将获取第一个附件的内容URL,并将其用作图像的源。请注意,您还可以缩放和裁剪图像,以便在以下列表中使用:

<img src="@UI.Content(post.Attachments[0], 300, 100)">

这会将图像缩放并裁剪为300px宽和100px高。您可以在此处阅读更多信息:

此外,如果显示帖子列表的页面由CMS控制,并且具有页面类型,我建议您考虑向该页面添加
PostRegion
PostModelRegion
。这些区域会自动将帖子集合加载到页面模型中,您可以指定数量、排序顺序和其他内容。这将plify您可以重用页面类型,但可以更改为不同页面实例显示的帖子类型

问候


Håkan

@post.Attachments表示一个数组,而不是一个图像。是这样吗?事实并非如此。它们都存储在CMS中,与帖子没有直接关系。因此我希望用附件引用图像,使其更具动态性。你是一个传奇人物!