/ / @ html.dropdownfor non sta selezionando il valore predefinito - asp.net-mvc-3, html.dropdownlistfor

@ html.dropdownfor non sta selezionando il valore predefinito - asp.net-mvc-3, html.dropdownlistfor

@Html.DropDownListFor(x => x.SelectedProperty, Model.Property, "Please Select")

Ho il codice sopra in asp.net mvc3 per compilare un elenco a discesa. I dati vengono compilati ma l'elemento selezionato è il primo elemento del risultato del modello. Sto cercando di impostare il valore predefinito come "Seleziona". Come farlo?

risposte:

2 per risposta № 1

Nell'azione del tuo controller devi impostare il valore di SelectedProperty al valore dell'oggetto che vuoi preselezionare:

model.SelectedProperty = "5";

Questo ovviamente presuppone che il Porperty contiene un valore simile:

model.Property = new[]
{
new SelectListItem { Value = "1", Text = "item 1" },
new SelectListItem { Value = "2", Text = "item 2" },
new SelectListItem { Value = "3", Text = "item 3" },
new SelectListItem { Value = "4", Text = "item 4" },
new SelectListItem { Value = "5", Text = "item 5" },
new SelectListItem { Value = "6", Text = "item 6" },
};

IMPOSTANDO model.SelectedProperty = "5";, l'oggetto con Value="5" sarà automaticamente preselezionato dal Html.DropDownListFor aiutante.

Se invece vuoi avere il "Please Select" viene visualizzato il valore predefinito, assicurati che nel tuo controller azioni SelectedProperty è impostato per null e non a qualche valore contenuto negli articoli.