モデル内のデータを返送しようとしている次のページがあります。現時点では、モデルを管理されていない状態に戻すだけで、クライアントに送信したものはすべて取り戻すことができます。コントローラーに返送されないモデルをトラブルシューティングする方法は?
@model List<UserSetting>
@using (Html.BeginForm("SaveSettings", "Account", Model, FormMethod.Post))
{
<table>
<tr>
<th>User name</th>
<th>Setting</th>
<th>Value</th>
<th>Order</th>
</tr>
@foreach (UserSetting setting in Model)
{
<tr>
<td>@setting.User.UserName</td>
<td>@setting.Name</td>
<td>@setting.Value</td>
<td>@setting.Order</td>
</tr>
}
</table>
<input type="submit" />
}
ただし、コントローラで受信したオブジェクトは空です。 nullではないので、私は何かを投稿しているようですが何らかの理由で何かにゼロ要素が含まれているようです。
[HttpPost]
public void SaveSettings(List<UserSetting> settings) { ... }
私は何が欠けていますか、どのようにトラブルシューティングを行いますか?私はそれが本当に簡単な感覚で、誰かが私にそれを指摘すると、私は本当に馬鹿だと感じるでしょう。
フォームコントロール( ''など)は生成されません。フォームは成功したフォームコントロールの値だけを返します。とにかくコレクションのフォームコントロールを生成するために 'foreach'ループを使うことはできません - [この回答](http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943# 30094943) –
また、[BeginCollectionItem](https://github.com/danludwig/BeginCollectionItem)も必ずチェックしてください。 –