使用包含字段的 View 模型:
public bool? IsDefault { get; set; }
尝试在 View 中映射时出现错误:
<%= Html.CheckBoxFor(model => model.IsDefault) %>
无法隐式转换类型“bool”?到'bool'。存在显式转换(是否缺少强制转换?)
我试过转换和使用 .Value
都没有用。
请注意,我想要的行为是提交表单时应将模型中的 IsDefault
设置为 true 或 false。 null
的值仅表示尚未填充模型。
最佳答案
问题是你真的有三个可能的值; true、false 和 null,因此 CheckBoxFor 无法处理这三种状态(只能处理两种状态)。
Brad Wilson 在他的博客上讨论 here .他将 DropDownList 用于可为空的 bool 值。
这个 StackOverflow question在描述情况方面比我在上面所做的要好得多。解决方案的缺点是有时可以为空并不意味着错误,它应该是可以为空的。这方面的一个例子是您不希望应用 true 或 false 的过滤条件。
关于c# - MVC 映射到模型中可为空的 bool 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3035957/