当我的对象仍然为空时处理Null异常

时间:2019-05-21 03:10:08

标签: c# asp.net asp.net-mvc

如何处理此空异常?

我有一个按钮,可从我的静态变量类中取出数据

public ActionResult BtnNext()
{
        System.Threading.Thread.Sleep(1000);
        var first = MyQueue.todayQueue.Dequeue();
        MyQueue.todayQueue.Count();
        ViewBag.QueueItem = first;
        return View();
}

这是我的视图,它显示了我出队的数据。

@{
    var item = (Rosh.QueueMe.Web.Models.MyQueue)ViewBag.QueueItem;
}

@{
    if (item != null)
    {
        //Help here.
    }
}


   <p>@item.QueueNumber</p>

当我的viewbag仍然为空/ null时,我仍然不知道如何处理。
现在我得到这个错误:

  

对象引用未设置为对象的实例。 /项目为空。

该代码为null,因此不会继续进入我的索引页面。

2 个答案:

答案 0 :(得分:0)

您还需要检查{{1}的null或使用ViewBag.QueueItem进行引用强制转换,以确保未设置as或{ {1}}。因此您可以像这样调整它:

ViewBag.QueueItem

如果null@{ var item = ViewBag.QueueItem as Rosh.QueueMe.Web.Models.MyQueue; } ,现在item将设置为null

答案 1 :(得分:0)

您必须在投放之前检查ViewBag

@if(ViewBag.QueueItem != null)
{
   var item = (Rosh.QueueMe.Web.Models.MyQueue)ViewBag.QueueItem;
}