我正在用ASP.Net MVC开发应用程序,在控制器中获取错误的复选框的值。我使用以下代码在视图中显示checkbox:
@Html.CheckBox("ENABLED", new { @class = "checkSwitch", @checked = "checked" })它在模型类中的相关属性是
public Nullable<bool> ENABLED { get; set; }我在这里的http://labs.lukepeters.me/iphone-checkbox-switch/上使用jquery插件,它会像这样显示这个复选框:

选中(是)时为其生成的html代码如下所示:

未选中(否)时为其生成的html代码如下所示:

现在的问题是,当我打开表单时,这个复选框一开始就会正确显示,而当我只选中/取消选中一次checkbox时,一切都会正常工作。意思是如果checkbox最初被选中,而我将其取消选中,则保存数据,然后返回未选中(False),这是正确的。但是假设复选框最初是选中的,而我将其取消选中,再次选中,此时保存数据而不是复选框被选中,则返回未选中(False)。另外,假设最初复选框未选中,并且我将其选中,同样,我使其未选中,此时保存数据复选框未选中(False)。真的很奇怪,不知道是什么问题。
任何帮助都是非常有帮助的。谢谢……
发布于 2014-10-30 23:44:48
如果您正在使用具有强类型视图的模型,请尝试将Razor更改为:
@model YourModel
<!-- [...] Html Content [...] -->
@Html.CheckBoxFor(m => m.ENABLED, new { @class = "checkSwitch", @checked = "checked" })然后,在你的控制器中,动作应该是这样的:
[HttpPost]
public ActionResult PostMethod(YourModel model)
{
var isChecked = model.ENABLED;
// [...]
}或者,您可以尝试其他方法,如下所示:
public ActionResult PostMethod(bool ENABLED) { /*[...]*/ }https://stackoverflow.com/questions/26656998
复制相似问题