2008-10-13 10 views
9

Me gustaría declarar un cuadro desplegable en una vista en una aplicación ASP.NET MVC, para permitir que el usuario seleccione un valor de búsqueda. Sé cómo declarar cuadros de texto sin formato, pero ¿hay un ayudante oficial para declarar cuadros desplegables (selectores de fecha y hora y el resto) ?.¿Cómo puedo declarar un cuadro desplegable en una vista para establecer un valor para un modelo en ASP.NET MVC?

Tampoco sé qué estructura debería pasar a mi vista para dar los valores al cuadro desplegable. Supongo que necesito tanto una identificación como una descripción.

Finalmente, ¿cómo paso la identificación seleccionada del cuadro desplegable a mi acción en el controlador?

+2

Considere cambiar el título del cuadro combinado al cuadro desplegable. Un cuadro combinado es un cuadro desplegable que incluye un cuadro de texto para ingresar un nuevo elemento. La gente que busca implementar un cuadro combinado en MVC está mal encaminada aquí. Ver http://en.wikipedia.org/wiki/Combo_box – RickAndMSFT

+0

Gracias Rick. Hecho. – Petros

Respuesta

4

Si tiene una tabla de Tipos de productos con descripción y un valor (id) que desea asignar a su menú desplegable, haga lo siguiente dentro de su acción en el controlador.

//Lets assume you retrieve your product types somehow here 
ViewData["ProductTypes"] = new List<ProductType>(); 

A continuación, dentro de la vista escriba lo siguiente

<%= Html.DropDownList("productType", 
    new SelectList((IEnumerable)ViewData["ProductTypes"], 
    "TypeID", "Description"))%> 

TypeID y descripción se refiere a las propiedades de su objeto de tipo ProductType

Además, es posible que no encuentre Html.DropDownList si tiene una versión anterior de MVC instalada, asegúrese de tener una versión Beta + antes de probar esto.

1

Puede consultar esta entrada del blog de Scott Guthrie sobre Handling Form Edit Post Scenarios. Utiliza una lista desplegable en un ejemplo suyo.

También puede proporcionar una lista de objetos complejos a la lista desplegable (el ejemplo de Scott Guthrie no muestra eso, pero lo alude).

Usted puede hacer algo como esto ...

<%= Html.DropDownList("Select One", "CategoryId", ViewData.Model.Categories, "Id", "Name", ViewData.Model.SelectedCategoryId)) %> 

"ID" y "Nombre" se refieren a las propiedades en su lista de objetos ViewData.Model.Categories.

Si SelectedCategoryId tiene un valor, la configuración predeterminada será la lista desplegable.

+0

Traté de hacer lo que sugeriste. El problema es que no puedo encontrar DropDownList. En el artículo dice que debería incluir alguna biblioteca de MVC que no puedo encontrar en mi disco. ¿Sabes dónde puedo encontrarlo? – Petros

Cuestiones relacionadas