如何将动态null布尔值转换为false

本文关键字:转换 false 布尔值 null 动态 | 更新日期: 2023-09-27 18:03:15

我正在创建ASP。. NET MVC4 c#应用程序,它接受动态查询并动态生成razor视图。

应用程序使用WebMatrix.Data.Query()获取数据。这个方法返回IEnumerable<dynamic>。结果行可以包含bool?输入值为null的属性

这些值在动态生成的razor视图中使用&&、||和!操作符。这些操作符不接受空布尔值,在这种情况下会发生运行异常。

我正在寻找一种方法来解决这个问题。似乎最好的方法是将动态布尔null值转换为false。

I tried method

    public static dynamic BooleanNullToFalse(dynamic value)
    {
        if (value == null && value is bool?)
            return false;
        return value;
    }

但是得到奇怪的编译错误

不能编译动态表达式所需的一个或多个类型发现。你是不是漏掉了一个参考资料?

表达式value == null 中的

如何解决这个问题,使代码编译?

另一种可能是强制&&, ||!布尔运算符接受空值或定义新的接受空值的布尔运算符。我不知道这可能/合理吗?

如何将动态null布尔值转换为false

添加Microsoft。参考你的项目,如果它已经存在,然后删除并重新添加,按照这个评论