我有一个网页,在这种形式的视图中有很多复选框:
@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,false} 而不是 {true}。
知道发生了什么吗?