none
Error al llenar DropDownList en Proyecto de ASP MVC 4 RRS feed

  • Pregunta

  • Buenas Tardes a Todos.

    He estado realizando un proyecto de Curso y e implementado el llenado de un DropDownList desde una Base de Datos y me dá el siguiente error:

    ´No hay ningún elemento ViewData de tipo IEnumerable<SelectListItem> con la clave areas.´

    Tengo una BD y dentro una Tabla llamada 'area' y solo necesito tomar los 'id_areas' de ella y mostrarlos en un DropDownList.

    A continuación les muestro el código de lo que he implementado:

    //En mi clase Modelo 'miembro.cs'
    
     public LinkedList<int> ListarAreas()
    {
                c.conect();
                LinkedList<int> li = new LinkedList<int>();
                c.executeQuery("SELECT area.id_area FROM area");
    
                while (c.dr.Read())
                {               
                    li.AddLast(int.Parse(c.dr[0].ToString()));
                }
                c.desconect();
                return li;
    }
    //En mi clase controller 'MiembroController'
    public ActionResult Create2()
    {
                LinkedList<int> listID = m.ListarAreas();
                List<SelectListItem> items = new List<SelectListItem>();
    
                foreach (int x in listID)
                    items.Add(new SelectListItem() { Text = "id_area", Value = x.ToString() });
    
                ViewData["areas"] = items;
                return View();
    }
    // parte de mi vista
    
    <div class="editor-field">
                <%: Html.DropDownList("areas", ViewData["areas"] as List<SelectListItem>) %>            
            </div>

    Que podría estar mal?

    saludos


    Alex

    jueves, 4 de febrero de 2016 20:13

Respuestas

  • hola

    no uses el ViewData, usa el ViewBag

    ViewBag en ASP.NET MVC 3


    public ActionResult Create2()
    {
                LinkedList<int> listID = m.ListarAreas();
                List<SelectListItem> items = new List<SelectListItem>();
    
                foreach (int x in listID)
                    items.Add(new SelectListItem() { Text = "id_area", Value = x.ToString() });
    
                ViewBag.Areas = items;
                return View();
    }


    <%: Html.DropDownList("areas", new SelectList(ViewBag.Areas, "Value","Text")) %> 




    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 4 de febrero de 2016 20:59

Todas las respuestas

  • hola

    no uses el ViewData, usa el ViewBag

    ViewBag en ASP.NET MVC 3


    public ActionResult Create2()
    {
                LinkedList<int> listID = m.ListarAreas();
                List<SelectListItem> items = new List<SelectListItem>();
    
                foreach (int x in listID)
                    items.Add(new SelectListItem() { Text = "id_area", Value = x.ToString() });
    
                ViewBag.Areas = items;
                return View();
    }


    <%: Html.DropDownList("areas", new SelectList(ViewBag.Areas, "Value","Text")) %> 




    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 4 de febrero de 2016 20:59
  • Leandro, gracias.

    saludos


    Alex

    martes, 9 de febrero de 2016 16:40