【发布时间】:2014-10-30 15:25:02
【问题描述】:
我正在 ASP.Net MVC 中开发应用程序,并在控制器中获取错误的复选框值。我正在使用以下代码在视图中显示复选框:
@Html.CheckBox("ENABLED", new { @class = "checkSwitch", @checked = "checked" })
模型类中的相关属性是这个
public Nullable<bool> ENABLED { get; set; }
我在这里 http://labs.lukepeters.me/iphone-checkbox-switch/ 使用 jquery 插件,它显示此复选框,如下所示:
勾选(Yes)后生成的html代码如下:
未选中(否)时为其生成的html代码如下:
现在的问题是,当我使用此复选框打开表单时,最初复选框会正确显示,并且当我只选中/取消选中 chekcbox 一次时,一切正常。意味着如果最初选中复选框并且我将其取消选中,则保存数据然后它返回未选中(false),这是正确的。但是假设复选框最初被选中并且我将其取消选中,我再次选中,这次保存数据而不是复选框被选中,它返回未选中(假)。还假设复选框最初未选中并且我将其选中,再次我未选中,这次保存数据复选框未选中(假)。 真奇怪不知道是什么问题。
任何帮助都非常有帮助。谢谢.....
【问题讨论】:
-
这与
css无关 -
在这两种情况下,复选框的值都设置为“true”。这是由开关 javascript 设置的吗?
-
查看 POST 中发送了什么值
-
感谢大家的回复。 @matt-dot-net 我在控制器的 Request 对象中看到了发布的值,假设最初复选框未选中,我检查了它,然后发布的值是 ENABLED=true&ENABLED=false 我的视图模型也为 ENABLED 正确绑定,仅用于第一次更改它是正确的。这里第一个值是复选框,第二个值是隐藏字段。但是假设最初复选框未选中并且我选中了它,再次未选中并选中它,甚至选中了启用的复选框,它发布了 ENABLED = false。我真的很沮丧,不知道为什么会这样。
标签: jquery asp.net-mvc checkbox