我有一个'Person'对象,它具有'FirstName'和'LastName'属性。 'Person'与'Phone'对象也有1-n关系。 'Phone'对象具有'Number'属性。 因此,一个人可以拥有多个电话号码。
在'PersonController'上我有一个'Create'动作,它加载一个强类型视图来显示一个我可以创建一个新'Person'的表单。但除了这个人的属性,我还希望能够输入第一个电话子对象。
这段代码给了我一个NullReferenceException:
Html.TextBox("Number", Model.Person.Phones.SingleOrDefault().Number)
在我的动作方法中,我调用这样的视图:
Dim p As New Person
Return View(p)
那么如何在一个视图上创建一个对象和一个第一个子对象呢?
答案 0 :(得分:1)
是不是因为电话号码对象尚未设置且实际上是空的?
因此,当您创建新人时,您还需要创建一个新的电话号码对象。
像我这样(我想),我的VB生锈了;Dim p as New person
Dim pp as new Phones
p.Phones.Add (pp)
return View(p)
因此,当你创建一个新人时,需要创建一个新手机并将其附加到新人身上。
你可以通过将上面的代码重构为Person对象的创建来做到这一点,这样总会有一个新的Phone对象附加到一个新的Person。
这是否有意义,还是我偏离基地?