Проблема в том, что вы пытаетесь передать коллекцию BlogPosts, когда ожидается один BlogPost.
Попытка:
@Html.DisplayFor(x => x[0], "BlogPostSummary")
Или что-то вроде:
@foreach (var post in Model)
@Html.Display(post)
Примечание: я не уверен, что второй пример использует Html.Display правильно. Я подозреваю, что код будет лучше обслуживаться с использованием частичного вместо шаблона отображения.
UIHint
По умолчанию ASP.NET MVC полагается на соглашения об именах, чтобы связать BlogPost
класс с BlogPost.cshtml шаблоном отображения. Однако, если вы хотите использовать CustomBlogPost.cshtml в качестве шаблона отображения, вы можете сделать это, применив атрибут UIHint
.
public class DomainModel {
[UIHint("CustomBlogPost")]
public BlogPost Post { get; set; }
}