2013-04-06 3 views
0

Voici la méthode Edit de mon contrôleur. Tout fonctionne correctement, mais la valeur actuelle de l'agent dans le menu déroulant FixedOrVariable n'est pas définie comme valeur par défaut. Cependant, je peux éditer cette valeur correctement.ASP MVC3 - Liste déroulante ne définissant pas la valeur par défaut correcte

Le champ FixedOrVariable est un champ à un caractère dans le modèle. Ses valeurs sont F ou V (toujours en majuscule).

Voici la méthode du contrôleur

public ActionResult Edit(int id) 
    { 
     var banklistagentid = db.BankListAgentId.Find(id); 
     ViewBag.BankID = new SelectList(db.BankListMaster, "ID", "BankName", banklistagentid.BankID); 

     SelectList tmpList = new SelectList(new[] { "AL", "AK", "AS", "AZ", "AR", "CA", "CO", "CT", "DE", "DC", "FM", "FL", "GA", "GU", "HI", "ID", "IL", "IN", "IA", "KS", "KY", "LA", "ME", "MH", "MD", "MA", "MI", "MN", "MS", "MO", "MT", "NE", "NV", "NH", "NJ", "NA", "NM", "NY", "NC", "ND", "MP", "OH", "OK", "OR", "PW", "PA", "PR", "RI", "SC", "SD", "TN", "TX", "UT", "US", "VT", "VI", "VA", "WA", "WV", "WI", "WY" }); 
     ViewBag.StateCodeList = tmpList; 

     var fixedOrVariable = new[] {new {Text = "Fixed", Value = "F"}, new {Text = "Variable", Value = "V"}}; 
     ViewBag.FixedOrVariable = new SelectList(fixedOrVariable, "Value", "Text", banklistagentid.FixedOrVariable); 

     return View(banklistagentid); 
    } 

Et voici le code de la vue

<div class="editor-field"> 
     @Html.DropDownListFor(model => model.FixedOrVariable, (SelectList)ViewBag.FixedOrVariable) 
    </div> 
+0

S'il vous plaît vérifier quelques réponses sur la même question [ici] (http://stackoverflow.com/questions/781987/how-can-i-get-this-asp-net-mvc -selectlist-to-work/11705380 # 11705380). – ararog

+0

L'affichage de votre élément de liste déroulante est-il correct? –

+0

@ararog: Il n'est pas nécessaire de surcharger la méthode 'ToString', cela devrait être une solution beaucoup plus simple. – NealR

Répondre

1

Ceci est probablement la plus grande erreur simple que j'ai vu des gens faire avec Dropdowns dans MVC. Vous ne pouvez pas nommer votre liste de choix de la même manière que la variable de votre élément sélectionné.

Modifier à ViewBag.FixedOrVariableList

+0

Parfait, merci! – NealR

Questions connexes