我建了一个班:
<link rel="stylesheet" href="/site.css">
它使用这个类:
public partial class SvcCodes
{
public List<SvcCodeReport> Report { get; set; }
public List<SvcCodesCheck> TestList { get; set; }
}
在控制器中,数据从两个源中提取并分配给SvcCodeReport类:
public partial class SvcCodeReport
{
public List<Dictionary<string, object>> ProgResults { get; set; }
public IEnumerable<ExtraData> ExtraData { get; set; }
}
然后将模型变量添加到Report类:
var model = new SvcCodeReport()
{
ProgResults = tasks,
ExtraData = _context.ExtraData.Where(h => h.ServiceCode == Int32.Parse(id)
};
但是当我运行程序时,我得到一个空对象错误和一行说:
check.Report.Add(model);
这个错误是说在添加之前或之后报告是否为空?
如果之前,为什么会出现这个问题? 如果之后,为什么模型变量没有被添加到列表中?
答案 0 :(得分:3)
您应首先初始化SvcCodes
列表,然后在public partial class SvcCodes
{
public List<SvcCodeReport> Report { get; set; }
public List<SvcCodesCheck> TestList { get; set; }
public SvcCodes()
{
Report = new List<SvcCodeReport>();
}
}
构造函数中执行此操作;
{{1}}
答案 1 :(得分:0)
我怀疑你是Linq的推迟执行模式。当你执行x.Where()等时,代码不会运行。它仅在您最终强制使用数据时运行。试试这个
var model = new SvcCodeReport()
{
ProgResults = tasks,
ExtraData = _context.ExtraData.Where(h => h.ServiceCode == Int32.Parse(id).ToList();
};
这将强制_context.ExtraData在那里进行评估