[英]Why after post my model is null? loop index
我知道要在發布后獲取模型,我們需要在razor視圖中編寫索引。 我的模型具有來自稱為Class的實體框架的實體,但是該實體具有ICollection<Student>
屬性導航。
我的意思是,我需要公開來自Class實體的項目,但問題是這是ICollection,我不知道如何公開索引。
這是我的剃刀視圖:
@model Contoso.MvcApplication.Models.Assignment.ShareAssignmentViewModel
@{
ViewBag.Title = "ShareAssignment";
}
<h2>Share Assignment: @Model.Assignment.Name</h2>
@for (int i = 0; i < Model.Classes.Length; i++)
{
<section>
<h3>@Model.Classes[i].Name</h3>
@for (int j = 0; j < Model.Classes[i].Students.Count; j++)
{
@Html.CheckBox(modelItem => Model.Classes[i].Students // what now?? [j])
}
</section>
}
發布后如何獲得所有模型?
@model Contoso.MvcApplication.Models.Assignment.ShareAssignmentViewModel
@{
ViewBag.Title = "ShareAssignment";
}
<h2>Share Assignment: @Model.Assignment.Name</h2>
@for (int i = 0; i < Model.Classes.Length; i++)
{
var studentsArray = Model.Classes[i].Students.ToArray();
<section>
<h3>@Model.Classes[i].Name</h3>
@for (int j = 0; j < studentsArray.Length; j++)
{
<input type="checkbox"
name="@(string.Format("Classes[{0}].Students[{1}]", i, j))"
value="@studentArray[j]" />
}
</section>
}
您是要使用@ Html.CheckBoxFor而不是@ Html.CheckBox嗎?
在大多數情況下,@ Html.CheckBoxFor應該很好地呈現默認模型綁定程序自動填充模型所需的標記。 我還沒有用您的代碼對此進行測試,因為我不太了解Model類中的內容。 但是,如果@ Html.CheckBoxFor不起作用,則可以輕松使用自定義的模型綁定器。 關於此的一個教程在這里:
http://brendan.enrick.com/post/custom-model-binders-in-aspnet-mvc.aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.