2010-06-09 4 views
9

Je dispose d'un formulaire de publication dans une action avec MVC. Je souhaite extraire l'élément de liste déroulant sélectionné de FormCollection dans l'action. Comment fait-on ça?Récupère la valeur de la liste déroulante sélectionnée dans FormCollection dans MVC

forme Mon 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> 
<% } %> 

Mon action:

Répondre

10

Commencez en donnant votre balise select une name valide. Un nom valide ne peut pas contenir d'espaces.

<select name="contentList"> 

puis récupérer la valeur sélectionnée de la forme collection de paramètres:

var value = collection["contentList"]; 

Ou encore mieux: ne pas utiliser toutes les collections, utilisez un paramètre d'action qui a le même nom que le nom de sélectionnez et laissez le classeur par défaut le remplir:

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

Oh snap! Merci, ça fait l'affaire. J'ai essayé les deux façons, mais j'aime comment vous avez utilisé le paramètre d'action. –

Questions connexes