2010-01-08 4 views
2

Au lieu d'une grille avec un lien 'Modifier' dans chaque ligne, j'aimerais utiliser une liste déroulante et un seul bouton 'Editer'. Quelle est la manière la plus propre de rendre ce bouton direct à /Edit/{id}(i.e.la valeur sélectionnée par ddl)? Utiliser onclick avec window.location est bien trop moche, super moche si je dois rendre compte de la base de l'url étant http://approot/ ou http://approot/controllername/ puisque c'est dans la vue Index.Liste déroulante ASP.NET MVC 2 Au lieu de la grille de la liste principale

Répondre

0

Vous pouvez utiliser n'importe quel type de présentation de formulaire, il vous suffit de vous assurer que le nom de la valeur que vous soumettez correspond au type et de nommer ce que le contrôleur attend.

Par exemple sur la page:

<select id="userList" name="userList"> 
<option value=1>My Name</option> 
<option value=2>Your Name</option> 
</select> 

et le contrôleur que la forme parle à devrait ressembler à:

public ActionResult Edit(int userList){...... 

alors quelle que soit l'option sélectionnée passera sa valeur à la contrôleur, tant que les noms correspondent et que l'action du formulaire est l'action correcte du contrôleur

+0

J'aime cette méthode. Juste pour clarifier, parce que ce n'était pas évident pour moi que je puisse le faire tout de suite, je devais spécifier l'action et le contrôleur dans <% Html.BeginForm ("Edit", "Home"); %> pour que le formulaire, qui se trouvait dans la vue Index, soit envoyé à l'action Modifier. –

+1

@Jason Kostempski: Ce serait plus RESTful si vous utilisiez '<% Html.BeginForm (" Edit "," Home ", FormMethod.Get); %> 'pour commencer l'édition. – LukLed

0

Vous pouvez toujours utiliser un formulaire html simple avec une liste déroulante et un bouton d'envoi.

+0

Merci. Cela m'a en fait conduit à un bon parcours d'apprentissage. Mais finalement, les curtisques répondaient pressé le jus hors de mes raisins d'esprit. –

Questions connexes