将值分配给类的列表属性

时间:2019-03-22 00:25:42

标签: c# asp.net-mvc

请检查下面的控制器和型号。我正在尝试将数据添加到类CreateProductPage_IniViewData的列表属性中,但是问题是,当我尝试在控制器中正常进行操作时,它说-

  

System.NullReferenceException:'对象引用未设置为   对象的实例。'

那我在做什么错?有想法吗?

型号:

namespace Demo.ViewModels
{
    public class CreateProductPage_IniViewData
    {
        public string StoreUrl { get; set; }
        public List<ProductGroupFake> productGroup { get; set; }
    }


    public class ProductGroupFake
    {
        public string GroupName { get; set; }
    }

}

控制器:

public IActionResult Index()
{
var finalData = new CreateProductPage_IniViewData();

finalData.productGroup.Add(new ProductGroupFake { GroupName = "foo", });


return View();
}

1 个答案:

答案 0 :(得分:0)

在这里:

var finalData = new CreateProductPage_IniViewData();

productGroup中的new CreateProductPage_IniViewData未初始化。只需将其设置为这样的默认值即可:

   public class CreateProductPage_IniViewData
    {
        public string StoreUrl { get; set; }
        public List<ProductGroupFake> productGroup { get; set; } = new List<ProductGroupFake>();
    }

或者在将其添加之前对其进行初始化:

var finalData = new CreateProductPage_IniViewData();
finalData.productGroup = new List<ProductGroupFake>();
finalData.productGroup.Add(new ProductGroupFake { GroupName = "foo"});