正如標題所示,我正在尋找一些有關該任務的幫助,我已經閱讀了許多關於它的教程,但沒有一個可以解決我的問題,從數據庫加載dropdownlistfor
。到目前爲止,我得到了下面的代碼:如何在ASP.NET MVC中填充數據庫的dropdownlist 4
**LNClientes():**
public List<ENDistrito> DistritoListar()
{
return new ADClientes().DistritoListar();
}
**ADClientes():**
public List<ENDistrito> DistritoListar()
{
Database oDatabase = DatabaseFactory.CreateDatabase(ConfigurationManager.AppSettings["conexionBD"]);
DbCommand odbcommand = oDatabase.GetStoredProcCommand("USP_SEL_DISTRITOS");
List<ENDistrito> lista = new List<ENDistrito>();
using (IDataReader reader = oDatabase.ExecuteReader(odbcommand))
{
while (reader.Read())
lista.Add(new ENDistrito(reader));
}
return lista;
}
**Controller:**
public ActionResult Registrar()
{
ViewBag.Message = Resources.Language.Title_Page_MC_C;
var ListaDistrito = new LNClientes().DistritoListar();
ViewBag.ObtenerDistrito = new SelectList(ListaDistrito, "IdDistrito", "DescripcionDistrito");
return View();
}
查看:
<div class="editor-field">
@Html.EditorFor(model => model.DistritoCliente)
@Html.DropDownListFor(model => model.DistritoCliente,(SelectList)ViewBag.ObtenerDistrito,"--Seleccione--")
@Html.ValidationMessageFor(model => model.DistritoCliente)
</div>
直到此時一切正常,當我打開形式dropdownlistfor
作品,但是當我提交表單我有以下消息:
沒有類型爲「IEnumerable」的ViewData項目 有關鍵'DistritoCliente'。
任何想法,我做錯了什麼或我怎麼能解決這個問題。
在此先感謝。
亞歷
當您只是一次將所有數據讀入列表中時,您如何使用數據讀取器? –
是否http://stackoverflow.com/questions/2849341/there-is-no-viewdata-item-of-type-ienumerableselectlistitem-that-has-the-key解決你的問題? –
我跟着文章,仍然沒有解決我的問題〜我改變了一些東西在控制器即時做這件事:ViewData [「Distritos」] =新的SelectList(新LNClientes()。DistritoListar(),「IdDistrito」,「DescripcionDistrito」 );但問題仍然是@ Html.DropDownListFor(Model => Model.DistritoCliente,((SelectListItem)ViewData [「Distrito」]))的下拉列表的聲明,但它會拋出參數的錯誤,任何其他想法來解決它 – Alex