全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
858 0
2020-07-19

在我的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 domain izswenda.com usee under.d informationUpdate(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绑定时就不会出现这个错误了。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群