首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使选中了asp.net mvc,复选框值也不会进入控制器

即使选中了asp.net mvc,复选框值也不会进入控制器
EN

Stack Overflow用户
提问于 2014-10-30 23:25:03
回答 1查看 921关注 0票数 1

我正在用ASP.Net MVC开发应用程序,在控制器中获取错误的复选框的值。我使用以下代码在视图中显示checkbox:

代码语言:javascript
复制
@Html.CheckBox("ENABLED", new { @class = "checkSwitch", @checked = "checked" })

它在模型类中的相关属性是

代码语言:javascript
复制
public Nullable<bool> ENABLED { get; set; }

我在这里的http://labs.lukepeters.me/iphone-checkbox-switch/上使用jquery插件,它会像这样显示这个复选框:

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

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

现在的问题是,当我打开表单时,这个复选框一开始就会正确显示,而当我只选中/取消选中一次checkbox时,一切都会正常工作。意思是如果checkbox最初被选中,而我将其取消选中,则保存数据,然后返回未选中(False),这是正确的。但是假设复选框最初是选中的,而我将其取消选中,再次选中,此时保存数据而不是复选框被选中,则返回未选中(False)。另外,假设最初复选框未选中,并且我将其选中,同样,我使其未选中,此时保存数据复选框未选中(False)。真的很奇怪,不知道是什么问题。

任何帮助都是非常有帮助的。谢谢……

EN

回答 1

Stack Overflow用户

发布于 2014-10-30 23:44:48

如果您正在使用具有强类型视图的模型,请尝试将Razor更改为:

代码语言:javascript
复制
@model YourModel
<!-- [...] Html Content [...] -->
@Html.CheckBoxFor(m => m.ENABLED, new { @class = "checkSwitch", @checked = "checked" })

然后,在你的控制器中,动作应该是这样的:

代码语言:javascript
复制
[HttpPost]
public ActionResult PostMethod(YourModel model)
{
    var isChecked = model.ENABLED;
    // [...]
}

或者,您可以尝试其他方法,如下所示:

代码语言:javascript
复制
public ActionResult PostMethod(bool ENABLED) { /*[...]*/ }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26656998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档