我正在创建ASP.NET MVC4 C#应用程序,它接受动态查询并动态生成剃刀视图。
应用程序使用WebMatrix.Data.Query()来获取数据。此方法返回IEnumerable<dynamic>
。
结果行可以包含bool?类型属性whise值为null。
这些值用于动态生成的剃刀视图中&amp;&amp; ,||而且!运营商。 那些operatos不接受null布尔值,在这种情况下会发生运行时异常。
我正在寻找解决此问题的方法。 似乎最好的方法是将动态布尔值null转换为false。
我试过方法
public static dynamic BooleanNullToFalse(dynamic value)
{
if (value == null && value is bool?)
return false;
return value;
}
但是编译错误
表达式编译动态表达式所需的一种或多种类型不能 找到。你错过了参考吗?
value == null
中的
如何解决此问题以便代码编译?
另一种可能性是强制&&
,||
和!
布尔运算符接受空值或定义
接受空值的新布尔运算符。我不知道这可能/合理吗?