MVC checkbox报错The value 'on' is not valid for <propertyname>.
2015-11-17 17:27
344 查看
在我的MVC项目里,一个Model定义,
原因呢?因为checkbox的值value是'on',MVC无法将这个值转换成bool类型。
解决方法,使用@Html.CheckBoxFor/@Html.CheckBox代替元素<input type="checkbox">。当使用@Html.CheckBoxFor/@Html.CheckBox
时,ASP.NET MVC会自动在后面生成一个隐藏的元素,用于保存bool值。这样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>
相关文章推荐
- 获取设备的一个唯一辨识号 -- UUID
- Migrations are pending. To resolve this issue, run: bin/rake db:migrate RAILS_ENV=development
- java在终端输入quit 后退出当前程序
- (Handler+Message+Looper+MessageQueue)源码分析
- Android UI设计的基本元素有哪些
- SpriteBuilder实现2D精灵光影明暗反射效果(二)
- SpriteBuilder实现2D精灵光影明暗反射效果(二)
- SpriteBuilder实现2D精灵光影明暗反射效果(二)
- spark(一) build
- java程序员第十一课 javaweb之request&response
- JAVA——(1)基础补充之运算符、字符串、数组、内存分配(String,StringBuffer,StringBuilder的区别
- java程序员第十课 javaweb之request&response
- 11 SMO优化算法(Sequential minimal optimization)
- UIButton的最基础用法
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- SpriteBuilder实现2D精灵光影明暗反射效果(一)
- iOS8之UIPopoverPresentationController
- How should 50 red and 50 blue marbles be distributed between two jars so as to maximize the chance o
- 自定义UITableViewCell初始化代码