为什么在检查 if(a!=null) 时出现 Null 错误
Why do I Get Null Error When Checking if(a!=null)
当我尝试 if (productVariantViewModels != null) returns 时出现空错误。我不明白为什么会这样? .net framework 4.6 一个cshtml页面
Edit.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
试试这个:
@{
ViewBag.Title = "Edit";
List<ProductVariantViewModel> productVariantViewModels = new List<ProductVariantViewModel>();
productVariantViewModels = ViewBag.ProductVariantViewModels;
}
...
...
...
if (productVariantViewModels != null)
{
foreach (var item in productVariantViewModels)
{
...
}
}
如果要将值放入列表中,它不会被初始化,因此 null
。这导致了您的 Null 异常。
您必须先用 new List<ProductVariantViewModel>(value)
初始化列表。
并且您应该检查 ViewBag
或 ViewBag.ProductVariantViewModels
是否为 null
。
试试这个:
(ViewBag?.ProductVariantViewModels != null)
List<ProductVariantViewModel> productVariantViewModels = List<ProductVariantViewModel>(ViewBag.ProductVariantViewModels);
当我尝试 if (productVariantViewModels != null) returns 时出现空错误。我不明白为什么会这样? .net framework 4.6 一个cshtml页面
Edit.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
试试这个:
@{
ViewBag.Title = "Edit";
List<ProductVariantViewModel> productVariantViewModels = new List<ProductVariantViewModel>();
productVariantViewModels = ViewBag.ProductVariantViewModels;
}
...
...
...
if (productVariantViewModels != null)
{
foreach (var item in productVariantViewModels)
{
...
}
}
如果要将值放入列表中,它不会被初始化,因此 null
。这导致了您的 Null 异常。
您必须先用 new List<ProductVariantViewModel>(value)
初始化列表。
并且您应该检查 ViewBag
或 ViewBag.ProductVariantViewModels
是否为 null
。
试试这个:
(ViewBag?.ProductVariantViewModels != null)
List<ProductVariantViewModel> productVariantViewModels = List<ProductVariantViewModel>(ViewBag.ProductVariantViewModels);