[asp.net-mvc]Null 错误检查 null 值时

发布时间: 2016/10/9 6:43:07
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想做一些动作与会话变量之前,测试值。 这是用于初始化 (正如你可以看到Session("Chemin") 是一个字符串列表

        @If (IsDBNull(Session("Chemin")) Or (ViewContext.RouteData.Values("action") = "Index")) Then
        @Code Dim lst As New List(Of String)()
        Session("Chemin") = lst  // Initialisation
     End Code
End If

但问题是这里的测试︰

@If (Not IsDBNull(ViewContext.RouteData.Values("action")) AndAlso Not IsDBNull(Session("Chemin")) AndAlso Not Session("Chemin").Contains((ViewContext.RouteData.Values("action").ToString()))) Then

有时候吧

System.NullReferenceException

我不明白,因为我只测试它,而且还将引发我的错误。 所以我的问题是︰ 为何以及何时到底它会发生?如何解决这个问题? 编辑︰ 不重复因为不是简单的 System.NullReferenceException

解决方法 1:

你应该替换所有你 IsDBNullIsNothing ,这就是你要的东西在这种情况下。因为我想你

    @If (IsDBNull(Session("Chemin"))

不能通过,那么 Session("Chemin") 可能是什么。

您应该检查, ViewContextViewContext.RouteDataViewContext.RouteData.ValuesViewContext.RouteData.Values("action") 都不是 nothing,以防万一。

你可以用这︰

                                                @Code Dim values = ViewContext?.RouteData?.Values End Code
                                        @If (values IsNot Nothing) // And the rest of your tests
官方微信
官方QQ群
31647020