【发布时间】:2018-03-25 19:14:56
【问题描述】:
我正在尝试从 CheckBox 中检索 bool 值并将其分配给变量 m.IsAdministrator,它的类型为 bool?:
@Html.CheckBoxFor(m => (bool?)(m.isAdministrator))
但是,此语法会出错。如何将bool CheckBoxFor 返回值分配给bool??
【问题讨论】:
-
错误是什么?
-
@RufusL "Cannot cast from
bool?tobool" 在 MVC 框架尝试编译视图时,因为它需要<Expression<Func<TModel,bool>>>但找到<Expression<Func<TModel,bool?>>>。 -
要从
bool?中获取bool,如果bool?是null,您希望默认值为false,那么您将使用.Value属性如果.HasValue是true,否则使用false。您可以使用?:三元运算符来做到这一点:bool x = m.isAdministrator.HasValue ? m.isAdministrator.Value : false; -
@RufusL 它不适用于 MVC 绑定。请查看重复的问题。
-
A
bool?有 3 个状态(true、null和false)。一个复选框只有 2 个,因此您不能为bool?使用复选框。要么创建属性bool,要么使用EditorFor(m =>m.isAdministrator),这将生成一个包含 3 个值的下拉列表
标签: c# asp.net-mvc