25 messaggi dal 17 maggio 2011
Ciao,

nel mio sito (in ASP.NET MVC 5) ho creato un editortemplate per caricare la lista dei prodotti richiesti da un cliente.
Ora sto cercando di caricare all'interno della dropdownlist il prodotto richiesto, però nel campo non viene visualizzato il valore presente nel database. La lista dei prodotti disponibili viene caricata ma viene selezionato sempre il primo valore.

Questo è il codice presente nella View:

@Html.DropDownList("ProductId", null, htmlAttributes: new { @class = "form-control" })


E questo quello nel controller per caricare i dati da visualizzare:

ViewBag.ProductId = new SelectList(db.Products.OrderBy(s => s.Description), "Id", "Description");


Qualcuno riesce ad aiutarmi?

Grazie
Ciao
Enrico
10.246 messaggi dal 09 febbraio 2002
Contributi
Ciao Enrico,
prova ad usare questo costruttore di SelectList, che ti permette di indicare il valore selezionato.
https://msdn.microsoft.com/it-it/library/dd492553(v=vs.118).aspx

In pratica una cosa del genere...

var idDaSelezionare = 4; //Ovviamente tu ottienilo in maniera dinamica
ViewBag.ProductId = new SelectList(db.Products.OrderBy(s => s.Description).ToList(), "Id", "Description", idDaSelezionare);


Ho messo anche un ToList() per sicurezza, altrimenti la query al database potrebbe partire al database più tardi per effetto della deferred execution, quando ormai il DbContext è stato distrutto.

Se non dovesse funzionare ancora, prova a passare la SelectList come argomento di Html.Dropdownlist, al posto del null che stai fornendo ora.

ciao,
Moreno

Enjoy learning and just keep making
25 messaggi dal 17 maggio 2011
Ti ringrazio Moreno, ho risolto mettendo la SelectList direttamente nella view perchè essendo un editortemplates che viene ciclato al caricamento dei dati non riesco ad impostare un unico selectvalue nel controller.

Grazie
Ciao
Enrico
Modificato da stone87 il 22 giugno 2017 17.29 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.