39

私はモデルを持っています:

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>
4

3 に答える 3

67
@Html.EditorFor(x=> item.Enabled)

このようなモデルをサーバーにポストすることは、デフォルトでは mvc では機能しないことが何度も指摘されてきました。EditorForループ内で適切に編集するには、次のforように使用する必要があります。

 @for(var i = 0; i< Model.Users.Count;i++){
      Html.EditorFor(i=>Model.Users[i])
 }
于 2010-01-01T00:35:57.053 に答える
15
@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>
}

さらに、ユーザーの少なくとも 1 つのプロパティに対していくつかの隠し変数が必要です。

@for (var i = 0; i < Model.Users.Count; i++)
{
    @Html.HiddenFor(model => model.Users[i].FirstName)
}

エレガントとは言えませんが、投稿アクションのバインディングに関しては機能します。

于 2013-11-26T06:29:24.473 に答える
1

自分自身を明示的に使用する他の理由 (例は別として) はありforeachますか? User classおよび makeのカスタム エディター (または表示) ヘルパーを作成でき@Html.EditorFor(model=>model.Users)ます。Razor はforeach、カスタム ヘルパーで各要素を処理するために内部的に使用します。

このケースをどのように管理するのか本当にわからないまま質問にアクセスする人のためのアイデアです。

于 2016-04-14T02:07:54.313 に答える