ASP.NET MVC Создать представление для объекта с первым дочерним объектом
-
06-07-2019 - |
Вопрос
У меня есть объект Person, у которого есть свойства FirstName и LastName. «Персона» также имеет отношение 1-n к объекту «Телефон». Объект Phone имеет свойство Number. Таким образом, у человека может быть несколько телефонных номеров.
В «PersonController» у меня есть действие «Создать», которое загружает строго типизированное представление, чтобы показать форму, в которой я могу создать нового «Человека». Но помимо свойств этого человека я также хочу иметь возможность ввести первый дочерний объект телефона.
Этот код дает мне исключение NullReferenceException:
Html.TextBox("Number", Model.Person.Phones.SingleOrDefault().Number)
В моем методе действия я вызываю представление следующим образом:
Dim p As New Person
Return View(p)
Итак, как я могу создать объект и первый дочерний объект в одном представлении?
Решение
Разве это не потому, что объект номера телефона не был установлен и на самом деле является нулевым?
Поэтому, когда вы создаете нового человека, вам также необходимо создать новый объект телефонного номера.
я так думаю (думаю), а мой VB ржавый;
Dim p as New person
Dim pp as new Phones
p.Phones.Add (pp)
return View(p)
Поэтому, по сути, при создании нового человека необходимо создать новый телефон и подключить его к новому человеку.
Вы могли бы сделать это лучше путем рефакторинга приведенного выше кода в создание объекта Person, чтобы всегда существовал новый объект Phone, присоединенный к новому Person.
Имеет ли это смысл или я вне базы?