#HTMLヘルパーを入力画面かつList型のクラスで使うときの注意
ASP.NET Core (MVC)でHTMLヘルパーを使って、テーブルタグで複数行入力し、List型のクラスでポストデータを受け取る画面を作ろうとしたら、入力データがポストされずハマったのでメモ
結論はforeachじゃなくて普通のforでやればOK
NG
foreachだとpostされてこないよ
@foreach (var row in Model.Rows)
{
<tr>
<td>@Html.EditorFor(m => row.ColA)</td>
<td>@Html.EditorFor(m => row.ColB)</td>
</tr>
}
OK
forだとOK
@for(var i = 0; i < Model.Rows.Count; i++)
{
<tr>
<td>@Html.EditorFor(m => m.Rows[i].ColA)</td>
<td>@Html.EditorFor(m => m.Rows[i].ColB)</td>
</tr>
}