簡體   English   中英

為什么發布后我的模型為空? 循環索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM