2010-06-09 10 views
9

Ho un modulo che invia a un'azione con MVC. Voglio estrarre l'elemento della lista a discesa selezionata da FormCollection nell'azione. Come lo faccio?Ottieni il valore dell'elenco a discesa selezionato da un oggetto FormCollection in MVC

forma My 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> 
<% } %> 

mia azione:

risposta

10

Inizia dando il vostro select tag una valida name. Un nome valido non può contenere spazi.

<select name="contentList"> 

e quindi recuperare il valore selezionato dalla collezione parametri di modulo:

var value = collection["contentList"]; 

O ancora meglio: non utilizzare le collezioni, utilizzare un parametro di azione che ha lo stesso nome come il nome di seleziona e lascia il modello predefinito popolato:

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

Oh, scatto! Grazie, ha funzionato. Ho provato in entrambi i modi, ma mi piace come hai usato il parametro di azione. –

Problemi correlati