2011-09-23 4 views

Répondre

1

En supposant que vous avez le progCodes dans une table de base de données, avec progCode ayant le texte, et progCodeId avec un ID unique, alors vous pouvez lire le tableau dans une liste de SelectListItem comme suit:

private DbContext _db = new DbContext(); 

var progCodesList = _db.progCodes.Select(x => new SelectListIem() 
    { 
     Text = x.progCode, 
     value = x.progCodeId 
    }).ToList(); 

Vous pouvez ensuite passer ce List<SelectListItem> à votre affichage dans un modèle fortement typé ou en utilisant ViewBag.

+0

J'ai les données provenant d'un fichier XML via le dépôt, pas un DbContext. – Gradile

+1

Si vous avez un référentiel, vous pouvez toujours utiliser un style similaire de requête LINQ pour remplir votre liste. La seule différence réside dans la façon dont vous instanciez votre instance de référentiel dans votre contrôleur. – counsellorben

0

Vous devez passer le progCodesList à la ViewBag dans votre méthode de commande en utilisant quelque chose comme:

ViewBag.ProgCodeId = progCodesList; 

Alors à votre avis, vous devez remplir le menu déroulant comme ceci:

<div class="editor-label"> 
     @Html.LabelFor(model => model.ProgCodeId, "ProgCode") 
    </div> 
    <div class="editor-field"> 
     @Html.DropDownList("ProgCodeId", String.Empty) 
     @Html.ValidationMessageFor(model => model.ProgCodeId) 
    </div> 
+0

Ou pour une alternative plus sécurisée, placez-la dans un modèle de vue fortement typé. – Jacob

+0

Merci de nous avoir signalé l'approche du modèle de vue fortement typé. J'avais oublié ça. –

Questions connexes