Double CheckBox Creation错误?

时间:2011-12-10 17:04:25

标签: asp.net-mvc asp.net-mvc-2 c#-4.0

我有一个foreach,它填充一个表格,并且行表格的一个字段是:

<% foreach (var item in Model.List){%>
   <td align="center">
      <%: Html.CheckBox(item.ID.ToString(),item.isChecked)%>
  </td>
<%}%>

在我的帖子函数中,我试图获取Request.Form [“45”](45是一个示例ID)并且看到值“true,false”正在接收。

看一下生成的代码,我刚看到:

<input name="45" type="checkbox" value="true" /><input name="45" type="hidden" value="false" />

因为我只想要生成一个输入,它是如何可能的?我不知道在这种情况下Html.CheckBoxFor是否更好用

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以阅读解释here

  

Ruby on Rails和MonoRail使用的方法相同。

     

当您提交带有复选框的表单时,仅在以下情况下发布该值   选中该复选框。所以,如果你不选中复选框,那么   在很多情况下你都不会将任何内容发送到服务器   希望错误发送。由于隐藏输入具有相同的名称   作为复选框,如果未选中该复选框,您仍然会得到一个   'false'发送到服务器。选中复选框后,   ModelBinder将自动处理从中提取'true'   '真,假'

为什么不使用模型以便模型处理它。在asp.net-mvc中不建议使用请求对象您也可以在actionresult中使用formcollection参数,并使用this方法处理此方案。

如果帮助者不符合您的要求,您可以随时使用html标签。