我在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插件,显示如下所示的复选框:
检查时为其生成的html代码(是)是这样的:
未选中时为其生成的html代码(否)是这样的:
现在的问题是,当我打开带有此复选框的表单时,最初复选框显示正确,当我只检查/取消选中chekcbox时,所有工作正常。意味着如果最初检查复选框并且我取消选中它,保存数据然后返回unchecked(false),这是正确的。但是假设最初检查复选框并且我取消选中它,再次检查,检查,这次保存数据而不是复选框被选中,它返回未选中(false)。另外假设最初取消选中复选框并且我进行了检查,我再次取消选中,此时保存数据复选框未选中(false)。 真的很奇怪,不知道是什么问题。
任何帮助都非常有帮助。感谢.....
答案 0 :(得分: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) { /*[...]*/ }