2013-07-23 11 views
10

Sto cercando di fare un dropdownlistfor con un valore selezionato ma non funziona:/E io cercare sul web, ma io non trovare la soluzione:/Selezionare un valore predefinito in dropdownlistfor MVC 4

Per il momento, sto facendo questo:

In C#:

ViewBag.ID_VEH = new SelectList(db.VEHI, "ID_VEH", "COD_VEH", 4); // 4 is an example 

Nel mio cshtml:

@Html.DropDownListFor(model => model.ID_VEH, ViewBag.ID_VEH as SelectList) 

il dropdownlist è ben completo ma il valore predefinito non è selezionato:/hai un'idea per favore?

risposta

8

basta impostare il valore iniziale di model.ID_VEH a 4:

Nel controllore:

model.ID_VEH = 4; 
+0

questo è sicuramente l'approccio migliore, e probabilmente il più semplice – mgrenier

12

Quello che mi piace fare è aggiungere un elenco di elementi da visualizzare nel DropDownList alla mia modello, quindi non devo passare quell'elenco tramite un viewbag. Inoltre mi piace aggiungere un campo per il mio modello che contiene il SelectedValue, che compila il controller

Poi si può fare

@Html.DropDownListFor(model => model.ID_VEH, new SelectList(Model.listVEH, "ID_VEH", "COD_VEH", Model.SelectedVEH_ID), "--Select VEH--") 
1

Solo nel caso qualcuno ha problemi simili trovare la risposta:

voglio avere vista con le caselle a discesa hanno messa a fuoco sulle voci mi danno (hardcoded) nel controllore:

controller:

SGLDataRegistration.Models.DataRegistrationModel mdl = rwd.GetData(DateTime.Now.Year, currentWeek, DateTime.Now, 139, 1); 

Vista:

    <div id="tempCustomerselect"> 
         @Html.LabelFor(m => m.CustomerName) 
         @Html.DropDownListFor(m => m.PitchID, new SelectList((new SGLDataRegistration.Models.CustomerModel().GetRoles()).OrderBy(x => x.CustomerName), "PitchID", "CustomerName"), new {id = "ddlCustomer", @class="jsddlCustomer"}) 

        </div> 

In questo GetData, i Set formazioneIl valori desiderati hardcoded:

SGLDataRegistration.Models.DataRegistrationModel GetData (anno, int weekNumber, DateTime dato, int pitchID, parametro int public int) { try { DataRegistrationParameters drp = GetParameter (parametro);

 //vul een instantie van het dataregistrationmodel 
     SGLDataRegistration.Models.DataRegistrationModel drm = new Models.DataRegistrationModel(); 
     drm.WeekNumber = weekNumber; 
     drm.BeginDay = datum; 
     drm.Parameter = parameter; 
     drm.Year = year; 
     drm.PitchID = pitchID;