Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么可以';我是否检查视图中的ViewModel属性==null?_C#_Asp.net Mvc_Html_Asp.net Mvc 4 - Fatal编程技术网

C# 为什么可以';我是否检查视图中的ViewModel属性==null?

C# 为什么可以';我是否检查视图中的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

简单问题(Ihope),我想使用视图中的if语句检查ViewModel中的属性是否为null

@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现在已修复。