Jak wypełnić dropdownlist z bazy danych w ASP.NET MVC 4

Jak mówi tytuł, szukam pomocy w tym zadaniu, przeczytałem wiele samouczków na ten temat, ale żaden z nich nie może rozwiązać mojego problemu, jakim jest załadowaniedropdownlistfor z bazy danych. Zdecydowanie otrzymałem następujący kod:

**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();
        }

Widok:

<div class="editor-field">
            @Html.EditorFor(model => model.DistritoCliente)
            @Html.DropDownListFor(model => model.DistritoCliente,(SelectList)ViewBag.ObtenerDistrito,"--Seleccione--")
            @Html.ValidationMessageFor(model => model.DistritoCliente)
        </div>

Do tego momentu wszystko jest w porządku, kiedy otwieram ten formularzdropdownlistfor działa, ale gdy przesyłam formularz, otrzymałem następujący komunikat:

Nie ma elementu ViewData typu „IEnumerable”, który ma klucz „DistritoCliente”.

Każdy pomysł na to, co robię źle lub jak mogę rozwiązać ten problem.

Z góry dziękuję.

Alex

questionAnswers(2)

yourAnswerToTheQuestion