ASP.NET MVC Model in View(ViewModel)三元运算符null检查

时间:2018-06-14 19:32:54

标签: c# .net view ternary-operator

我知道可以使用三元运算符(“?”)来检查值是否为null,如果它不是null,则进入“链式方法让我们调用它”。示例:Model?.FirstOrDefault();为什么这不起作用?我想说“如果Model不为空,请调用FirstOrDefault方法,否则不要做任何事情”。得到此错误

  

System.NullReferenceException:'对象引用未设置为   一个对象的实例。'

     

System.Linq.Enumerable.FirstOrDefault(...)返回null。

2 个答案:

答案 0 :(得分:1)

您无法执行此操作,因为string myVariable; if (Model != null) myVariable = Model.FirstOrDefault(); Extension Method

  

扩展方法使您可以向现有类型“添加”方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但它们在扩展类型上被称为实例方法

修复就是不使用只是语法糖的Null Conditional Operator

ViewComponent

答案 1 :(得分:0)

通常我用过?用于将API数据提取的访问器设置为?表示该值可以为null。我认为这更像是你想做的事情:

if (String.IsNullOrEmpty(TableName.AttributeName))
 {
   FirstOrDefault();
 }