2

これが私のコードです:

@using (Html.BeginForm("AddMCondition", "Admin"))
{
  <td class="admin-textbox">
      @Html.TextBox("txtMCondition")
  </td>
  <td>
     @foreach (var exerType in Model.AllExerciseTypes)
     {
      <label>
         @Html.CheckBox("RestrictedType")
         @exerType.Name
      </label>
     }
       <input type="submit" value="Add Medical Condition" />
     </td>
 }

これがコントローラーで値を取得する方法です

public ActionResult AddMCondition(string txtMCondition, string[] RestrictedType)
{
   //Code here...
}

AllExerciseTypesコレクションには 3 つの項目しかありません。各チェックボックスは、選択されているかどうかに関係なく、少なくともfalse値をコントローラーに送信していることに気付きました。どのチェックボックスもチェックしないと、コレクションに 3 つの false が表示されます。1 つのチェックボックスをオンにすると、4 つの値が得られます。つまり、1 つの true と 3 つの false などです。すべてチェックすると、True、False、True、False、True、False の 3 つの値が得られます。

チェックボックスが各状況で少なくとも false を送信している理由はありますか?

4

1 に答える 1