我有一个名为applicantVm的ViewModel,我正在尝试显示当前已注册的家庭子女列表。我使用存储过程返回列表但是很难将结果转换为ViewModel并显示它。
在我的ViewModel中:
[Display(Name = "Child First Name")]
[Required]
public string ChildFirstName { get; set; }
[Display(Name = "Child's Date Of Birth")]
public DateTime ChildDateOfBirth { get; set; }
[Required]
public string Grade { get; set; }
[Display(Name = "Grade Entering")]
[Required]
public int SelectedGradeId { get; set; }
public IEnumerable<SelectListItem> Grades { get; set; }
public IEnumerable<StudentVm> Students { get; set; }
在我的控制器中
public ActionResult Application()
{
var currentUserEmail = User.Identity.Name;
var familyMembers = _db.sp_ApplicantFamily_SelectFamilyMembers(User.Identity.Name).ToList();
List<ApplicantVm> applicantVmList = new List<ApplicantVm>();
ApplicantVm applicantVm = new ApplicantVm();
foreach (var child in familyMembers)
{
//Here is where I get an error
foreach ( var student in applicantVm.Students)
{
student.FirstName = child.FirstName;
}
}
return View();
}
我在applicantvm.student收到错误:
对象引用未设置为对象的实例。
如何将所有儿童的属性设置为学生属性?
答案 0 :(得分:1)
在ViewModel中,你应该做这样的事情;至少。 您缺少的是您无法在任何代码处初始化学生列表。
private List<string> _goodList = new List<string>();
public List<string> GoodOnes
{
get
{ return _goodList;}
set
{
_goodList = value;
}
}
这是一个非常基本的例子,你应该可以将它应用到你的身上。