【发布时间】:2013-09-19 07:07:34
【问题描述】:
我有一个网页,在这个表单的视图中有很多复选框:
@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}。
知道发生了什么吗?
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: asp.net-mvc-4 razor