Html.CheckBox呈现两个复选框

时间:2011-03-29 16:41:51

标签: c# javascript jquery asp.net asp.net-mvc

当我尝试在jquery中序列化<%: Html.CheckBox("Something", true) %>时(使用form.serialize()),我得到两个复选框,一个表示true,另一个表示false。我知道MVC呈现true,false表示复选框是真的,所以如果我没有通过javascript,我只是检查是否存在true,但是我怎么知道在执行表单后是否检查了我的复选框。序列

2 个答案:

答案 0 :(得分:4)

如果查看输出HTML - 您会看到Html.Checkbox()实际上在其中呈现了具有相同名称的其他隐藏输入。这就是你看到两个价值观的原因。我相信MS决定这样做,以便正确的bool获得POST(而不是复选框的'on'字符串值)。

为了解决这个问题,我再也不会使用Html.Checkbox()助手了,我总是自己编写完整的HTML。

答案 1 :(得分:0)

为什么不简单:

var isChecked = $('#idofyourcheckbox').is(':checked');

form.serialize()字符串中存储的值而言,它们注定要转到服务器,您只需使用布尔属性即可。