Ciao, sto facendo un po' di pratica seguendo il libro Asp.Net Core 2, ma da giorni non riesco a venire a capo di un problema, spero di riuscire a spiegarmi per ricevere aiuto
Attraverso lo Scaffolding guidato di visual studio, partendo da un Model, ho creato il Controller e la relativa View su una tabella (una semplice Anagrafica di magazzini)
Questa tabella ha 3 foreign key (presenti anche nel file DBContext.cs).
Eseguendo il progetto, noto che tutto funziona correttamente, parlo anche delle pagine Index, Details, Edit e Create (.cshtml).
Noto però anche che alle 3 foreign Key mi ritrovo associati dei campi sbagliati. Esemepio: con l'ID_AnagraficaUtente mi associa il CAP anziché il Cognome.
Allora mi metto a studiare un po' il codice, vado ad apportare delle modifiche manualmente nella index, nella edit, nella Details, e soprattutto nel Controller, in queste righe:
ViewData["IdAnagraficaUtente"] = new SelectList(_context.AnagraficaUtenti, "IdAnagraficaUtente", "Cognome", anagraficaRivendite.IdAnagraficaUtente);
ViewData["IdCodicePlantSap"] = new SelectList(_context.AnagraficaPlantSap, "IdCodicePlantSap", "NomePlantSAP", anagraficaRivendite.IdCodicePlantSap);
dove al posto di Cognome c'era appunto CAP, e al posto di NomePlantSAP c'era un altro campo (sempre varchar)
Eseguo e funziona. Ora viene visualizzato correttamente il campo Cognome e NomePlantSAP.
Dove sta il problema? Se vado in EDIT ricevo questo errore
NullReferenceException: Object reference not set to an instance of an object.
AspNetCore.Views_AnagraficaRivendites_Edit.<ExecuteAsync>b__20_0() in Edit.cshtml
33. <select asp-for="IdCodicePlantSap" class="form-control" asp-items="ViewBag.IdCodicePlantSap"></select>
Allora provo a togliere la riga 33 e l'errore non si verifica, viene mostrata una bella dropdownlist con tutti i cognomi, per cui deduco che la modifica effettuata nel Controller sul campo Cognome funziona mentre su NomePlantSAP no.
E ancora se ad esempio invece del Cognome voglio mostrare il campo eMail (che è un normalissimo campo di testo varchar(20), come il Cognome!) ricevo lo stesso errore avuto con NomePlantSAP.
In pratica a seconda del campo che voglio mostrare e che vado a mettere in ViewData del Controller, ricevo un errore oppure no.
I campi che scelgo hanno lo stesso formato, non ammettono NULL, non hanno record vuoti. Tornando al mio esempio i campi Cognome, Nome o Indirizzo vengono "digeriti" e mostrati senza problema, i campi eMail e NomePlantSAP no, mi danno errore.
Dove mi perdo qualcosa secondo voi? Saluti :)