asp.net-mvc – ASP.net MVC CheckBoxFor转换错误
我有一个EF实体绑定到一个包含一个名为“活动”的位字段的SQL表。我从T4模板生成编辑代码,页面继承自EF实体。在页面的底部,它生成了一个CheckBoxFor,如下所示:
<%= Html.CheckBoxFor(model => model.Active) %> 我在model.Active上获得了美妙的红色波浪,而且错误信息表示我不能隐式转换类型bool?要bool所以,我尝试了以下: <%= Html.CheckBoxFor(model => (bool)model.Active) %> 它当然不是这样的,给我这个错误:
我可能会错过一些简单的东西。 解决方法
尝试model.Active.Value
如果此字段不可为空,则应将数据库端的数据类型更改为不为空。 编辑 为什么会发生这种情况? 您的数据库字段定义为FIELDNAME BIT NULL。这意味着它可以包含三个值:NULL,true和false。由于它可以包含三个值,它映射到bool?键入实体框架。布尔?是Nullable< bool>的另一个名称,它是围绕bool的包装,允许它具有第三个值:NULL。由于CheckBoxFor期望两个值中的一个值为true或false,因此它不能包含Nullable< bool>。每个Nullable都具有称为值的属性,返回包装类型。但是您应该知道,当数据库字段将包含null Nullable< bool> .Value将抛出错误。如果您确定此字段不应包含NULL值,则应将其数据类型更改为FIELDNAME BIT NOT NULL并再次从数据库生成模型。这将从bool更改数据类型?要bool并且不需要调用Value属性。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 为什么我收到此错误:System.Security.Security
- asp.net – 是否可以在ApplicationServices DB中加密电子邮
- asp.net – Fiddler:错误502代理错误
- asp.net-mvc – asp.net mvc windows authentication – 以
- asp.net – 删除事件后GridView没有刷新
- asp.net-mvc-3 – 在MVC3 Controller操作中返回文件和呈现的
- asp.net – 强制RadComboBox下拉方向
- asp.net – 单元测试操作过滤器 – 如何模拟ViewResult
- 在应用程序配置中找不到LocalSqlServer或连接字符串为空
- asp.net – Visual Studio IDE的开发
- asp.net-mvc – Mvc – 在会话中存储列表,然后检
- asp.net – 如何在Web应用程序中对PDF文档进行数
- asp.net – 多个DataContext类是否适合?
- asp.net – 我可以覆盖web.config中的连接字符串
- 使用ASP.NET(C#)在不使用QueryString的情况下将变
- asp.net-mvc – 十进制的最佳数据注释(18,2)
- asp.net-mvc – Mocking HttpPostedFileBase和In
- asp.net-mvc – WCF Web Api作为asp.net mvc 3应
- .net – MVC 4 Mocking HttpContext – 如何模拟
- ASP.NET DropDownBox对Text和Value属性都有“Tex