2014-10-30 44 views
0

我正在ASP.Net MVC中开发应用程序,并在控制器中获取错误的复选框值。我使用下面的代码显示视图复选框:模型类复选框值没有得到控制器,即使它被检查asp.net mvc

@Html.CheckBox("ENABLED", new { @class = "checkSwitch", @checked = "checked" }) 

它的相关属性是这个

public Nullable<bool> ENABLED { get; set; } 

我使用jQuery插件,在这里http://labs.lukepeters.me/iphone-checkbox-switch/这显示此复选框这样的:

(是)是这样的: 0产生

enter image description here

HTML代码为它时,它的选中(否)是这样的:

enter image description here

现在的问题是,当我打开表格此复选框最初复选框正常显示,当我使chekcbox只检查/取消选中一次,然后所有工作正常。意思是如果最初检查复选框,并且使其未被选中,则保存数据,然后返回未选中(false),这是正确的。但是,假设复选框最初被选中,并且我将其设置为未选中状态,并且再次进行检查,此时保存数据,而不是复选框被选中,它将返回未选中状态(false)。另外假设最初取消选中复选框,并且使其进行检查,我再次取消选中,此时保存数据复选框未选中(false)。 这真的很奇怪,不知道什么是问题。

任何帮助真的很有帮助。谢谢.....

+0

这是不相关的'css' – LcSalazar 2014-10-30 15:25:59

+0

在这两个插件有一个复选框的值设置为“true”。 这是由开关JavaScript设置? – 2014-10-30 15:30:09

+0

查看POST中发送的值是什么 – 2014-10-30 15:41:34

回答

0

如果您使用的是带有强类型的视图模型,试着改变你的剃刀:

@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) { /*[...]*/ }