【问题标题】:Why do I Get Null Error When Checking if(a!=null)为什么检查 if(a!=null) 时出现 Null 错误
【发布时间】:2021-10-10 09:08:43
【问题描述】:

当我尝试 if (productVariantViewModels != null) 返回 null 错误。我不明白为什么会这样? .net framework 4.6 一个cshtml页面

编辑.cshtml:

@{
ViewBag.Title = "Edit";

List<ProductVariantViewModel> productVariantViewModels = ViewBag.ProductVariantViewModels;
}

...
...
...

                               
 if (productVariantViewModels != null)
 {
     foreach (var item in productVariantViewModels)
     {

        ...

     }
 }
   

还有 ProductVariantViewModel:

   public class ProductVariantViewModel
{
    public Products Product { get; set; }
    public string VariantName { get; set; }
    public Variant Variant { get; set; }
    public List<ProductAttribute> VariantAttributes { get; set; }
    public List<string> VariantValues { get; set; }


}

          

error img here

【问题讨论】:

  • 请提供minimal reproducible example。我怀疑正在发生的其他事情导致了奇怪的诊断。 (或者productVariantViewModels 是一个引发异常的属性 - 如果没有更多信息,我们无法判断。)
  • @JonSkeet 感谢您的评论!我编辑问题。
  • 那不是真正的minimal reproducible example。我无法将其复制/粘贴到新项目中并重现问题。

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


【解决方案1】:

如果你想把值放在列表中,它没有被初始化,因此null。这会导致您的 Null 异常。

您必须首先使用new List&lt;ProductVariantViewModel&gt;(value) 初始化列表。

您应该检查ViewBagViewBag.ProductVariantViewModels 是否为null

试试这个:

(ViewBag?.ProductVariantViewModels != null)
    List<ProductVariantViewModel> productVariantViewModels = List<ProductVariantViewModel>(ViewBag.ProductVariantViewModels);

【讨论】:

  • 嘿@arne 感谢您的帮助
【解决方案2】:

试试这个:

@{
    ViewBag.Title = "Edit";
    
    List<ProductVariantViewModel> productVariantViewModels = new List<ProductVariantViewModel>();
    productVariantViewModels = ViewBag.ProductVariantViewModels;
    }
    
    ...
    ...
    ...
    
                                   
     if (productVariantViewModels != null)
     {
         foreach (var item in productVariantViewModels)
         {
    
            ...
    
         }
     }

【讨论】:

    猜你喜欢
    • 2021-12-23
    • 2013-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-07
    • 2017-03-14
    • 2011-03-20
    • 2011-03-09
    相关资源
    最近更新 更多