我有一个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
是否更好用
谢谢!
答案 0 :(得分:3)
您可以阅读解释here
Ruby on Rails和MonoRail使用的方法相同。
当您提交带有复选框的表单时,仅在以下情况下发布该值 选中该复选框。所以,如果你不选中复选框,那么 在很多情况下你都不会将任何内容发送到服务器 希望错误发送。由于隐藏输入具有相同的名称 作为复选框,如果未选中该复选框,您仍然会得到一个 'false'发送到服务器。选中复选框后, ModelBinder将自动处理从中提取'true' '真,假'
为什么不使用模型以便模型处理它。在asp.net-mvc中不建议使用请求对象您也可以在actionresult中使用formcollection参数,并使用this方法处理此方案。
如果帮助者不符合您的要求,您可以随时使用html标签。