Question

J'ai un objet 'Person' qui a une propriété 'FirstName' et 'LastName'. La "Personne" a également une relation 1-n avec un objet "Téléphone". L'objet 'Phone' a une propriété 'Number'. Une personne peut donc avoir plusieurs numéros de téléphone.

Sur le "PersonController", j'ai une action "Create" qui charge une vue fortement typée pour afficher un formulaire dans lequel je peux créer une nouvelle "Personne". Mais en plus des propriétés de la personne, je souhaite également pouvoir entrer un premier objet enfant de téléphone.

Ce code me donne une exception NullReferenceException:

Html.TextBox("Number", Model.Person.Phones.SingleOrDefault().Number)

Dans ma méthode d'action, j'appelle la vue comme suit:

Dim p As New Person
Return View(p)

Comment puis-je créer un objet et un premier objet enfant sur une seule vue?

Était-ce utile?

La solution

N’est-ce pas parce que l’objet Numéro de téléphone n’a pas été défini et est en réalité nul?

Ainsi, lorsque vous créez une nouvelle personne, vous devez également créer un nouvel objet de numéro de téléphone.

comme ça, je (pense) et mon VB est rouillé;

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

En résumé, lorsque vous créez une nouvelle personne, vous devez créer un nouveau téléphone et l’attacher à la nouvelle personne.

Vous pourriez mieux le faire en refacturant le code ci-dessus dans l'objet create de personne afin qu'il y ait toujours un nouvel objet Phone attaché à une nouvelle personne.

Cela a-t-il un sens ou suis-je en dehors de la base?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top