Wie der Titel sagt, ich suche nach Hilfe in dieser Aufgabe, habe ich viele Tutorials darüber gelesen, aber keine von ihnen kann mein Problem gelöst, das ist wie um eine dropdownlistfor
aus der Datenbank zu laden. Bei weitem habe ich den folgenden Code:So füllen Sie eine Dropdown-Liste aus der Datenbank in ASP.NET MVC 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();
}
Ausblick:
<div class="editor-field">
@Html.EditorFor(model => model.DistritoCliente)
@Html.DropDownListFor(model => model.DistritoCliente,(SelectList)ViewBag.ObtenerDistrito,"--Seleccione--")
@Html.ValidationMessageFor(model => model.DistritoCliente)
</div>
bis zu diesem Punkt alles in Ordnung ist, wenn ich öffnen, die Form der dropdownlistfor
funktioniert, aber wenn ich das Formular abschicken Ich habe die folgende Meldung:
Es gibt keinen Viewdata Artikel vom Typ ‚IEnumerable‘ dass die Taste ‚DistritoCliente‘ hat.
Irgendeine Idee auf, was ich falsch mache oder wie ich dieses Problem lösen könnte.
Vielen Dank im Voraus.
Alex
Wie kommt es, dass Sie einen Datenleser verwenden, wenn Sie alle Ihre Daten gleichzeitig in einer Liste lesen? –
Gibt http://stackoverflow.com/questions/2849341/there-is-no-viewdata-item-of-type-ienumerableselectlistitem-that-has-the-key dein Problem zu lösen? –
Ich folgte dem Artikel und habe immer noch nicht mein Problem gelöst ~ ich habe einige Dinge wie im Controller geändert, indem ich das mache: ViewData ["Distritos"] = neue SelectList (neue LNClientes(). DistritoListar(), "IdDistrito", "DescripcionDistrito"); aber das Problem ist immer noch die Deklaration der Dropdown-Liste, die @ Html.DropDownListFor ist (Model => Model.DistritoCliente, ((SelectListItem) ViewData ["Distrito"])) aber es wirft Fehler der Argumente, jede andere Idee, es zu lösen – Alex