怪異,工作完全正常,我:
型號:
public class MyViewModel
{
public IEnumerable<Message> Messages { get; set; }
}
public class Message
{
public string MessageBody { get; set; }
}
控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel
{
Messages = Enumerable.Range(1, 10).Select(x => new Message
{
MessageBody = "message " + x
})
});
}
}
查看:
@model MyViewModel
@foreach (var item in Model.Messages)
{
<div>@Html.DisplayFor(msg => item.MessageBody)</div>
}
我懷疑你Messages
收集離子是空的或什麼的。想不到另一個理性的解釋,因爲我無法重現您的問題,如我的答案中所示。
作爲一個便箋,我會使用顯示模板來避免寫入任何循環。所以,你的Index.cshtml
觀點簡直變成:
@model MyViewModel
@Html.DisplayFor(x => x.Messages)
,然後你寫它西港島線自動被渲染爲Messages
收集您的視圖模型的每個項目對應的顯示模板(~/Views/Shared/DisplayTemplates/Message.cshtml
):
@model Message
<div>@Html.DisplayFor(x => x.MessageBody)</div>
有有些錯誤或不? –
@AdamTuliper沒有錯誤,因爲助手似乎失去了範圍或一些這樣的,是'空'。取決於發生的事情和地點,收集總是有數據。這就是爲什麼我很困惑。爲什麼最初空了呢?我不知道,只是強迫它在控制器中列出似乎已經使數據「堅持」,因爲它應該。 – ZombieThread