C# 为什么可以';我是否检查视图中的ViewModel属性==null?
简单问题(Ihope),我想使用视图中的if语句检查ViewModel中的属性是否为nullC# 为什么可以';我是否检查视图中的ViewModel属性==null?,c#,asp.net-mvc,html,asp.net-mvc-4,C#,Asp.net Mvc,Html,Asp.net Mvc 4,简单问题(Ihope),我想使用视图中的if语句检查ViewModel中的属性是否为null @if(Model.AdminPractice.TimeNotes == null) 这是一个错误 对象引用未设置为对象的实例 但是,如果我不调用属性本身,只调用类,if语句就可以工作 @if(Model.AdminPractice == null) 这是因为Viewmodel是类而不是属性的组合,还是我应该在控制器中处理它?如果是的话,如何处理??谢谢 查看模型 public class Admi
@if(Model.AdminPractice.TimeNotes == null)
这是一个错误
对象引用未设置为对象的实例
但是,如果我不调用属性本身,只调用类,if语句就可以工作
@if(Model.AdminPractice == null)
这是因为Viewmodel是类而不是属性的组合,还是我应该在控制器中处理它?如果是的话,如何处理??谢谢
查看模型
public class AdminPracticeViewModel
{
public Practice Practice { get; set; }
public AdminPractice AdminPractice { get; set; }
}
不,这是因为
Model.AdminPractice
为
。您需要做的是:
@if(Model.AdminPractice == null || Model.AdminPractice.TimeNotes == null)
不,这是因为
Model.AdminPractice
为
。您需要做的是:
@if(Model.AdminPractice == null || Model.AdminPractice.TimeNotes == null)
由于您试图访问空对象的属性值,因此得到的对象引用未设置为对象的实例错误。在这种情况下,
AdminPractice
为空,尝试访问其任何属性都会出现此错误
在将AdminPractice发送到视图之前,您需要在控制器中部署AdminPractice
因此,通过将if语句更改为下面的if语句,您的代码将起作用:
@if(Model.AdminPractice == null || Model.AdminPractice.TimeNotes == null)
{
// Do whatever you need to do here
}
我希望这能有所帮助。您得到的
对象引用未设置为对象的实例
错误是因为您试图访问空对象的属性值。在这种情况下,AdminPractice
为空,尝试访问其任何属性都会出现此错误
在将AdminPractice发送到视图之前,您需要在控制器中部署AdminPractice
因此,通过将if语句更改为下面的if语句,您的代码将起作用:
@if(Model.AdminPractice == null || Model.AdminPractice.TimeNotes == null)
{
// Do whatever you need to do here
}
我希望这会有所帮助。您的代码不会仍然抛出错误吗?您应该先执行Model.AdminPractice检查,然后再执行Model.AdminPractice.TimeNotes检查。如果Model.AdminPractice为null,那么肯定会引发错误?@jods:没错,但是如果您颠倒检查顺序,这应该可以很好地工作。@CurlyPaul它现在已修复。您的代码不会仍然引发错误吗?您应该先执行Model.AdminPractice检查,然后再执行Model.AdminPractice.TimeNotes检查。如果Model.AdminPractice为null,那么肯定会抛出错误?@jods:没错,但是如果您颠倒检查顺序,这应该可以很好地工作。@CurlyPaul现在已修复。