Reputation: 149
I have a list of blog posts in Orchard CMS. This is my code:
@{
IEnumerable<object>
blogPosts = Model.ContentItems;
Model.ContentItems.Classes.Add("content-items");
Model.ContentItems.Classes.Add("blog-posts");
}
<div class="row">
@foreach (var item in blogPosts)
{
<div class="col-md-4 col-sm-6">
<div>
<div class="blog-seg post-item seg">
<div>@Display(item)</div>
</div>
</div>
</div>
}
</div>
I want each DIV
to have a link to the post. How can I do this?
Upvotes: 1
Views: 152
Reputation: 149
@using Orchard.ContentManagement;
@{
IEnumerable<dynamic>
blogPosts = Model.ContentItems;
Model.ContentItems.Classes.Add("content-items");
Model.ContentItems.Classes.Add("blog-posts");
}
<div class="row">
@foreach (var item in blogPosts)
{
IContent contentItem = item.ContentItem;
var metadata = contentItem.ContentItem.ContentManager.GetItemMetadata(contentItem);
string alias = metadata.Identity.Get("alias");
<div class="col-md-4 col-sm-6">
<div>
<div class="blog-seg post-item seg">
<a href="~/@alias" style="display:block;">@Display(item)</a>
</div>
</div>
</div>
}
Upvotes: 0
Reputation: 1540
Use the following to display links for content items:
@using Orchard.ContentManagement;
@{
IEnumerable<dynamic>
blogPosts = Model.ContentItems.ContentItems;
Model.ContentItems.Classes.Add("content-items");
Model.ContentItems.Classes.Add("blog-posts");
}
<div class="row">
@foreach (var item in blogPosts) {
<div class="col-md-4 col-sm-6">
<div>
<div class="blog-seg post-item seg">
<div>
@Html.ItemDisplayLink(item.ContentItem as IContent)
</div>
</div>
</div>
</div>
}
</div>
Upvotes: 3