MVC checkbox报错The value 'on' is not valid for <propertyname>.

原创 2015年11月17日 17:27:08

    在我的MVC项目里,一个Model定义,

public class Admin
    {
        public long ID { get; set; }
        public string Name { get; set; }
        public bool IsSuperAdmin { get; set; }

        //.........
    }
    编辑该Model的View代码,

<div class="">
	<input name="IsSuperAdmin" type="checkbox" id="checkIsSuperAdmin" @(Model.IsSuperAdmin ? "checked" : "")>
        <label class="" for="checkIsSuperAdmin">是否是超级管理员</label>
</div>
    后台Controller的代码,

[HttpPost]
        public ActionResult Update(Admin admin)
        {
            if (ModelState.IsValid)
            {
                //...........
            }
            //............
        }
    这时ModelState.IsValid是false,同时ModelState里存在这样一个错误,Key是IsSuperAdmin,Value是The value 'on' is not valid for IsSuperAdmin 

    原因呢?因为checkbox的值value是'on',MVC无法将这个值转换成bool类型。

    解决方法,使用@Html.CheckBoxFor/@Html.CheckBox代替元素<input type="checkbox">。当使用@Html.CheckBoxFor/@Html.CheckBox

时,ASP.NET MVC会自动在后面生成一个隐藏的元素,用于保存bool值。这样model绑定时就不会出现这个错误了。


修改以后的代码

<div class="">
        @Html.CheckBoxFor(model => model.IsSuperAdmin, new { id = "checkIsSuperAdmin" })
        <label class="" for="checkIsSuperAdmin">是否是超级管理员</label>
</div>




SpringMVC 接收多个checkbox提交参数的问题

springMVC在接收多个checkbox提交表单参数的时候的问题!!!!!! 当前端表单序列化为json对象提交checkbox数据的时候有个这样的问题, 如图我有3个checkbox的...
  • zero_295813128
  • zero_295813128
  • 2016年10月12日 09:45
  • 8139

springmvc checkbox动态从后台获得

开发框架:springmvc+mybaties+spring 页面:jsp+js+jquery 开发工具eclipse 数据库:oracle11g springmvc中jsp页面checkbo...
  • u014079773
  • u014079773
  • 2016年07月09日 12:35
  • 3184

Spring MVC框架checkbox标签的使用

代码: checkboxForm.jsp 测试checkbox标签 form:checkbox测试 选择课程: ...
  • Haige_lin
  • Haige_lin
  • 2017年03月23日 10:52
  • 525

Spring MVC框架checkbox标签的使用

代码: checkboxForm.jsp [html] view plain copy %@ page language="java" con...
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2017年03月23日 21:02
  • 2013

JS:checkbox 全选及传值相关

checkbox 全选及传值相关
  • istend
  • istend
  • 2014年12月19日 16:27
  • 1137

checkbox如果没有选中,就不能传值吗?

这是你的程序自己设置的呀,你写的就是最初状态未选中时,其值为0,选中时其值为1,这个值将不再改变,接受端只能判断有无数据传过来,所以如果你想实现选中后值为1,未选中值为0,有两种方法 1。在客户端用j...
  • ghbct812345
  • ghbct812345
  • 2017年03月13日 10:42
  • 728

MVC复选框选中方法

1、Model类 public class News { public int ID { get; set; } public string Name...
  • bdbql
  • bdbql
  • 2016年07月19日 09:36
  • 2045

Android简单获取多个复选框的值

xml文件: xml version="1.0" encoding="utf-8"?>
  • xiatianlong_xtl
  • xiatianlong_xtl
  • 2016年02月04日 10:02
  • 6363

在Struts2 的Action中怎样获取表单提交上来的多个checkbox的值

第一种方法:获取结果String类型  在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。  ...
  • well386
  • well386
  • 2017年01月10日 15:23
  • 3466

js中将多个checkbox的值传处理并传到后台

js中将多个checkbox的值传处理并传到后台 jsp页面代码如: ${list.fieldName} 不共享 普...
  • yangwenxue_admin
  • yangwenxue_admin
  • 2016年05月25日 19:33
  • 7593
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MVC checkbox报错The value 'on' is not valid for <propertyname>.
举报原因:
原因补充:

(最多只允许输入30个字)