ASP.NET MVC Создать представление для объекта с первым дочерним объектом - PullRequest
0 голосов
/ 27 октября 2009

У меня есть объект 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)

Итак, как я могу создать объект и первый дочерний объект в одном представлении?

1 Ответ

1 голос
/ 28 октября 2009

Разве это не потому, что объект телефонного номера не был установлен и фактически равен нулю?

Поэтому, когда вы создаете нового человека, вам также необходимо создать новый объект телефонного номера.

эээ, вот так я (думаю) и мой VB ржавый;

Dim p as New person
Dim pp as new Phones
p.Phones.Add (pp)
return View(p)

Таким образом, в сущности, когда вы создаете нового человека, необходимо создать новый телефон и подключить его к новому человеку.

Вы могли бы сделать это лучше путем рефакторинга вышеуказанного кода в создание объекта Person, чтобы всегда существовал новый объект Phone, присоединенный к новому Person.

Имеет ли это смысл или я с базы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...