foreachの内EditorForを使用する方法
-
22-09-2019 - |
質問
私はモデルを持っています:
public class MyListModel
{
public int ID {get;set;}
public List<User> Users{get;set;}
}
私はforeachの内Html.EditorForメソッドを使用するにはどうすればよい?
@model MyListModel
<table>
<tr>
<th></th>
</tr>
@foreach (var item in Model.Users) {
<tr>
<td>
@Html.EditorFor(item.Enabled)
</td>
</tr>
}
</table>
解決
@Html.EditorFor(x=> item.Enabled)
これは、サーバーにそのようなモデルの背面を投稿するデフォルトではMVCでは動作しないことを何度も指摘されています。
適切ループ内EditorFor
と編集用 - for
は、のように使用されるべきである:
@for(var i = 0; i< Model.Users.Count;i++){
Html.EditorFor(i=>Model.Users[i])
}
他のヒント
@for (var i = 0; i < Model.Users.Count; i++)
{
<tr>
<td>@Html.EditorFor(model => model.Users[i].Enabled)</td>
<td>@Html.EditorFor(model => model.Users[i].FirstName)</td>
<td>@Html.EditorFor(model => model.Users[i].LastName)</td>
</tr>
}
プラスユーザーの少なくとも一つの特性のためのいくつかの隠された変数が必要とされます:
@for (var i = 0; i < Model.Users.Count; i++)
{
@Html.HiddenFor(model => model.Users[i].FirstName)
}
あなたがエレガント呼ぶだろうが、それはあなたのポストのアクションで結合に関して機能していないものを。
明示的foreach
自分で使用するための他の理由(離れ例)はありますか?あなたはUser class
とメイク@Html.EditorFor(model=>model.Users)
用のカスタム・エディタ(または表示)ヘルパーを作ることができます。カミソリはカスタムヘルパーに各要素を処理するために内部foreach
を使用します。
この例の管理方法は本当にありません手掛かりに質問を訪れる人のためだけのアイデア。
所属していません StackOverflow