<%= Html.CheckBoxFor(model => model.Active) %>
我在model.Active上获得了美妙的红色波浪,而且错误信息表示我不能隐式转换类型bool?要bool所以,我尝试了以下:
<%= Html.CheckBoxFor(model => (bool)model.Active) %>
它当然不是这样的,给我这个错误:
system.invalidOperationException:
Templates can be used only with field
access,property access,
single-dimension array index,or
single-parameter custom indexer
expressions.
我可能会错过一些简单的东西。
解决方法
如果此字段不可为空,则应将数据库端的数据类型更改为不为空。
编辑
为什么会发生这种情况?
您的数据库字段定义为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属性。
原文地址:https://www.jb51.cc/aspnet/252155.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。