これが私のコードです:
@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 を送信している理由はありますか?