Combos en ASP.NET MVC

 ·  ☕ 14 min  ·  ✍️ eiximenis

    Nota: Este post ha sido importado de mi blog de geeks.ms. Es posible que algo no se vea del todo "correctamente". En cualquier caso puedes acceder a la versión original aquí

    Buenas! Una de las preguntas más referentes en ASP.NET MVC consiste en como crear combos, enlazarlas, etc, etc… La verdad es que la documentación sobre este punto es un poco difusa y dispersa así que intentaré en este post mostrar un poco las distintas formas que tenemos en ASP.NET MVC de crear combos.

    Para ilustrar las distintas opciones partimos de una clase “Database” que simula un contexto de ORM. Es una clase que simplemente tiene dos listas (estáticas), una de ciudades (Cities) y otra de provincias (States). La definición de las clases City y State son:

        public class City

        {

            public int Id { get; set; }

            public string Name { get; set; }

            public string CP { get; set; }

            public int StateId { get; set; }

        }

     

        public class State

        {

            public int Id { get; set; }

            public string Name { get; set; }

        }

    1. SelectListItem

    En HTML una combo ( generado. Que a su vez es el nombre del parámetro cuando recibimos los datos

  • El nombre del campo del ViewBag que tiene los elementos.
  • Si no queremos que estos dos valores sean iguales, podemos espcificarle a Html.DropDown donde está el IEnumerable que contiene los datos de la combo. Así en la vista podríamos utilizar:

    @Html.DropDownList("selectedCity", ViewBag.Cities as IEnumerable<SelectListItem>)

    Con esto le estamos diciendo que nos genere un