在viewmodel中添加到icollection

时间:2013-11-20 11:57:51

标签: c#

我的'UserViewModel'中有一个ICollection:

public ICollection<userpractice> userpractices { get; set; }

在我的控制器中,我试图在viewmodel中为此集合添加一个userpractice:

user user = db.users.Find(id);
UserViewModel uservm = new UserViewModel();

foreach (var up in user.userpractices)
{
    uservm.userpractices.Add(up);
}

我收到错误消息“对象引用未设置为对象的实例”。我不知道为什么,因为up肯定是正确分配给填充的用户实践。

如果有帮助,

uservm.userpractices为null。但我认为一开始应该为null,因为viewmodel在集合中没有任何用户实践!

1 个答案:

答案 0 :(得分:4)

是的,uservm.userpractices一开始是null是完全正常的。这就是为什么在向其添加项目之前需要创建集合的新实例的原因。例如:

List<string> items;
items.Add("test"); //Object reference exception

首先这样做:

items = new List<string>();
items.Add("test"); //works