C# - Class.models.modelname.list.get 在使用 List.Add 时返回 null

Mig*_*ngi 3 c#

我建立了一个类:

public partial class SvcCodes
{
    public List<SvcCodeReport> Report { get; set; }
    public List<SvcCodesCheck> TestList { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它使用这个类:

public partial class SvcCodeReport
{
    public List<Dictionary<string, object>> ProgResults { get; set; }
    public IEnumerable<ExtraData> ExtraData { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

在控制器中,数据从两个来源拉取并分配给 SvcCodeReport 类:

var model = new SvcCodeReport()
{
  ProgResults = tasks,
  ExtraData = _context.ExtraData.Where(h => h.ServiceCode == Int32.Parse(id)
};
Run Code Online (Sandbox Code Playgroud)

然后将模型变量添加到 Report 类中:

check.Report.Add(model);
Run Code Online (Sandbox Code Playgroud)

但是当我运行程序时,我得到一个空对象错误和一行说:

LRProgReport.Models.SvcCodes.Report.get returned null
Run Code Online (Sandbox Code Playgroud)

这个错误是说在添加之前还是之后报告为空?

如果以前,为什么这是一个问题?如果之后,为什么模型变量没有被添加到列表中?

luc*_*cky 5

您应该先初始化Report列表,然后在SvcCodes构造函数中进行;

public partial class SvcCodes
{
    public List<SvcCodeReport> Report { get; set; }
    public List<SvcCodesCheck> TestList { get; set; }

    public SvcCodes()
    {
        Report = new List<SvcCodeReport>();
    }
}
Run Code Online (Sandbox Code Playgroud)