我遇到了麻烦。我正在尝试将viewmodel对象添加到viewolodel对象的ICollection ...
它给出了一个空引用异常。这是内在的例外。
System.NullReferenceException occurred
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=<Cannot evaluate the exception source>
它说无法评估异常来源......
我有一个viewmodel:
public class ClientJobListingViewModel
{
public int Id { get; set; }
public string JobType { get; set; }
public string Status { get; set; }
public string WarrantyStatus { get; set; }
public string NumberOfVisits { get; set; }
}
作为viewmodel的集合添加到实体中:
public class ClientDetailsViewModel
{
...
public ICollection<ClientJobListingViewModel> Jobs { get; set; }
}
我正在使用foreach循环创建viewmodel,然后将其添加到集合中......简单。
if (_client.Jobs.Count() > 0)
{
foreach (Job job in _client.Jobs)
{
var _job = new ClientJobListingViewModel();
_job.JobType = "test1";
_job.Status = "test2";
_job.WarrantyStatus = "test3";
_job.NumberOfVisits = "4";
_model.Jobs.Add(_job);
}
}
....
然而,当我运行这个时,我得到一个空引用异常错误..
看起来我已正确编码,但也许我错过了一些东西...... Visual Studio当然是这么认为的。
我做错了什么?
答案 0 :(得分:3)
您必须在Jobs
构造函数中或在使用ClientDetailsViewModel
之前初始化_model.Jobs.Add(_job);
属性
public class ClientDetailsViewModel
{
public ClientDetailsViewModel()
{
Jobs = new List<ClientJobListingViewModel>();
}
public ICollection<ClientJobListingViewModel> Jobs { get; set; }
}