ASP.NET MVC Создать представление для объекта с первым дочерним объектом

StackOverflow https://stackoverflow.com/questions/1633145

  •  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.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top