2010-06-09 16 views
9

Tengo un formulario publicado en una acción con MVC. Quiero extraer el elemento de lista desplegable seleccionado de FormCollection en la acción. ¿Cómo lo hago?Obtenga el valor de la lista desplegable seleccionada de un FormCollection en MVC

Mi formulario HTML:

<% using (Html.BeginForm()) 
    {%> 
    <select name="Content List"> 
    <% foreach (String name in (ViewData["names"] as IQueryable<String>)) { %> 
      <option value="<%= name %>"><%= name%></option> 
    <% } %> 
    </select> 
    <p><input type="submit" value="Save" /></p> 
<% } %> 

Mi Acción:

Respuesta

10

primer lugar, da una etiqueta válida selectname. Un nombre válido no puede contener espacios.

<select name="contentList"> 

y luego buscar el valor seleccionado de la colección de parámetros de formulario:

var value = collection["contentList"]; 

O aún mejor: no utilice ningún colecciones, utilice un parámetro de acción que tiene el mismo nombre que el nombre de seleccione y deje la carpeta de modelo predeterminada llene:

[HttpPost] 
public ActionResult Index(string contentList) 
{ 
    // contentList will contain the selected value 
    return RedirectToAction("Details", contentList); 
} 
+0

Oh, ¡rápido! Gracias, eso hizo el truco. Intenté en ambos sentidos pero me gusta cómo usaste el parámetro de acción. –

Cuestiones relacionadas