Domanda

Ho un oggetto 'Person' che ha una proprietà 'FirstName' e 'LastName'. La "Persona" ha anche una relazione 1-n con un oggetto "Telefono". L'oggetto 'Telefono' ha una proprietà 'Numero'. Quindi una persona può avere più numeri di telefono.

Su "PersonController" ho un'azione "Crea" che carica una vista fortemente tipizzata per mostrare un modulo in cui posso creare una nuova "Persona". Ma oltre alle proprietà della persona voglio anche essere in grado di inserire un primo oggetto figlio del telefono.

Questo codice mi dà una NullReferenceException:

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

Nel mio metodo di azione chiamo la vista in questo modo:

Dim p As New Person
Return View(p)

Quindi, come posso creare un oggetto e un primo oggetto figlio su una singola vista?

È stato utile?

Soluzione

Non è perché l'oggetto del numero di telefono non è stato impostato ed è in realtà nullo?

Quindi, quando crei una nuova persona, dovrai anche creare un nuovo oggetto numero di telefono.

erm come questo io (penso) e il mio VB è arrugginito;

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

Quindi, in sostanza, quando si crea una nuova persona, è necessario creare e collegare un nuovo telefono alla nuova persona.

Puoi farlo meglio rifattorizzando il codice sopra nella creazione dell'oggetto Person in modo che ci sia sempre un nuovo oggetto Phone collegato a una nuova persona.

Ha senso o sono fuori base?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top