このフォームのビューに多くのチェックボックスがある Web ページがあります。
@using (Html.BeginForm("PerformDiagnostic", "Tests", FormMethod.Post))
{
(...)
@Html.CheckBox("Something01", false)<span>Something 01</span><br />
@Html.CheckBox("Something02", false)<span>Something 02</span><br />
(...)
<input type="submit" value="Submit" />
}
送信ボタンを押すと、次の署名を持つコントローラーにすべてのチェックボックスのステータスを渡します。
public ActionResult DoSomeTasks(FormCollection form)
{
int isSomething01Checked= Convert.ToInt32(form["Something01"]);
int isSomething02Checked= Convert.ToInt32(form["Something02"]);
....
}
コントローラーでは、各チェックボックスがチェックされているかどうかを知りたいのですが、問題は form["SomethingXX"] が {true,false} のようなものを返しますが、現在のステータス (チェックされているかどうか) を教えてくれないことです。また、["SomethingXX"] を返すフォームは変換できません。
チェックボックスがチェックされている場合、form["SomethingXX"] は {true,false} を返し、チェックされていない場合、form["SomethingXX"] は {false} を返すことを確認しました。 {true} の代わりに true,false}。
何が起こっているのですか?