使用包含该字段的视图模型:
public bool? IsDefault { get; set; }
尝试在视图中映射时出现错误:
<%= Html.CheckBoxFor(model => model.IsDefault) %>
无法隐式转换类型“bool”? '布尔'。存在显式转换(您是否缺少强制转换?)
我尝试过铸造并使用.Value
但都不起作用。
请注意,我想要的行为是提交表单应该设置IsDefault
在模型中为 true 或 false。值为null
只是意味着模型尚未填充。
问题是你确实有三个可能的值; true、false和null,所以CheckBoxFor无法处理这三种状态(只能处理两种状态)。
布拉德·威尔逊在他的博客上讨论here http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html。他使用 DropDownList 来表示可为 null 的布尔值。
这个堆栈溢出question https://stackoverflow.com/questions/2490790/why-is-checkboxfor-producing-runtime-error在描述情况方面比我上面做的要好得多。该解决方案的缺点是有时可以为空并不意味着错误,它应该可以为空。例如,您不希望应用 true 或 false 的过滤条件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)