Ho una tabella che contiene un elenco di EquipmentIDs e un'altra tabella con record di manutenzione.Asp.Net MVC 2 Visualizzazione a discesa System.Web.MVC.SelectListItem
Quando l'utente modifica un record di manutenzione, desidero che ci sia un elenco a discesa di tutti gli ID dell'apparecchiatura dalla tabella.
L'elenco a discesa viene compilato e viene compilato con il numero corretto di voci, tuttavia, tutte indicano System.Web.MVC.SelectListItem
anziché il valore dell'ID.
Qui è il codice che genera l'elenco:
public ActionResult Edit(int id)
{
MaintPerformed maintPerformed = maintPerformedRepository.GetMaintPerformed(id);
IList<EquipmentID> IDs = equipmentIDRepository.GetEquipmentIDAsList();
IEnumerable<SelectListItem> selectEquipList =
from c in IDs
select new SelectListItem
{
//Selected = (c.EquipID == maintPerformed.EquipID),
Text = c.EquipID,
Value = c.Sort.ToString()
};
ViewData["EquipIDs"] = new SelectList(selectEquipList, maintPerformed.ID);
return View(maintPerformed);
}
Ecco la voce nella pagina aspx per l'elenco a discesa:
%: Html.DropDownList("EquipIDs") %>
Ecco come sto generando l'elenco dal la tabella:
public List<EquipmentID> GetEquipmentIDAsList()
{
return db.EquipmentIDs.ToList();
}
Sembra che tutto funzioni correttamente ad eccezione dell'assegnazione il testo da visualizzare nella casella a discesa.
Cosa mi manca o non penso correttamente?
Grazie. Liberarsi della sezione centrale del codice e semplicemente inviare gli ID al costruttore SelectList ha fatto il trucco. – amarcy