2

これが状況です。ClassBオブジェクトのリストを含むClassAがあります。ClassB には、int、bool、string の 3 つの変数があります。リストするときにbool変数を変更しようとしています(ビュー内でforeachを使用)。リスト部分はスムーズに実行されますが (チェックするチェックボックスを選択できます)、ユーザーが選択したチェックボックスの値は記憶されません。

これはビューモデルです:

@model ClassA
...

@using (Html.BeginForm("Upload", "Registration", FormMethod.Post, new { enctype = "multipart/form-data" }))
    {
       ...
      <p>Your name: @Html.TextBoxFor(x => x.FirstName) </p>
      <p>Adress:             @Html.TextBoxFor(x => x.Adress)</p> 

      foreach (ClassB check in Model.ClassBlist)
      {

      <p>@check.Name:@Html.CheckBoxFor(x=>check.attributeChecked,check.itemID)</p> 

        }
   ``...
     }
4

1 に答える 1

2

このようにしてみてください:

for (var i = 0; i < Model.ClassBlist.Count; i++)
{
    <p>
       @Html.DisplayFor(x => x.ClassBlist[i].Name)
       :
       @Html.CheckBoxFor(
           x => x.ClassBlist[i].attributeChecked, 
           Model.ClassBlist[i].itemID
       )
    </p> 
}

今回は、CheckBoxFor ヘルパーが対応する入力フィールドの正しい名前を生成し、フォームを送信するときにデフォルトのモデル バインダーが適切にバインドできるようにします。

于 2013-11-06T16:15:46.060 に答える