首先我有意見>博客> DisplayTemplates一個顯示模板:ASP.NET MVC 3顯示模板問題
@model Domain.Model.BlogPost
<div class="blogSummary">
@Html.ActionLink(Model.Title, "post", new { Id = Model.PostID }, new { @class = "titleLink" })
<div class="subInfo">
Posted by @Model.Author on @Model.PostedDate.ToString("D") | @Model.PostComments.Count
Comment(s)</div>
<br />
<div class="summaryText">
@Html.Markdown(Model.Body.Length > 300 ? Model.Body.Remove(0, 300) + "..." : Model.Body)
@Html.ActionLink("(view more)", "post", new { Id = Model.PostID })
</div>
</div>
然後,我有一個觀點:
@model IEnumerable<Domain.Model.BlogPost>
@{
ViewBag.Title = "Index";
}
@Html.DisplayFor(x => x, "BlogPostSummary")
不過,我得到一個錯誤的DisplayFor()
:
傳遞到 字典型號產品類型'System.Data.Objects.ObjectSet`1 [Domain.Model.BlogPost]', 但該字典需要型號爲'Domain.Model.BlogPost'的 項目。
我在理解發生了什麼時遇到了一些麻煩。什麼是使用顯示模板的最佳方式?
有趣。在另一個應用程序中,我做了這個'@ Html.EditorFor(x => x.Guests)',它工作得很好。該視圖的模型是'Invite'類型的,其導航屬性爲'EntityCollection'類型的Guests。我沒有迭代集合;它自動完成了:/ –
Chev
2011-03-16 19:48:35
雖然我的感覺是在這一個,你應該使用部分而不是顯示模板。你有沒有任何理由? – kim3er 2011-03-16 19:57:05
沒理由,我只是在另一個問題的某個地方被告知,以避免在我的視圖中循環收集並使用模板。看到接受的答案在這裏:http://stackoverflow.com/questions/5070399/how-to-use-multiple-form-elements-in-asp-net-mvc這就是他告訴我使用編輯器和顯示模板。 – Chev 2011-03-16 20:03:59