231 votes

Bouton HTML appelant un contrôleur MVC et une méthode d'action

Je sais que ce n'est pas correct, mais pour illustrer mon propos, j'aimerais faire quelque chose comme ceci:

 <%= Html.Button("Action", "Controller") %>
 

Mon objectif est de créer un bouton HTML qui appellera la méthode d'action de mon contrôleur MVC.

Je vous remercie,

Aaron

286voto

Cheddar Points 1862

Pas besoin d'utiliser un formulaire du tout sauf si vous souhaitez poster à l'action. Un bouton de saisie (ne pas soumettre) fera l'affaire.

 <input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
 

269voto

Babul Mirdha Points 769

La syntaxe de rasoir est ici:

 <input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
 

15voto

Jon Galloway Points 28243

Vous pouvez utiliser Url.Action pour spécifier la génération de l'URL d'une action de contrôleur. Vous pouvez donc utiliser l'un des éléments suivants:

 <form method="post" action="<%: Url.Action("About", "Home") %>">
   <input type="submit" value="Click me to go to /Home/About" />
</form>
 

ou:

 <form action="#">
  <input type="submit" onclick="parent.location='<%: Url.Action("About", "Home") %>';return false;" value="Click me to go to /Home/About" />
  <input type="submit" onclick="parent.location='<%: Url.Action("Register", "Account") %>';return false;" value="Click me to go to /Account/Register" />
</form>
 

11voto

usefulBee Points 492

En vous appuyant sur quelques-unes des réponses ci-dessus, vous pouvez le faire:

 <button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
 

6voto

SLaks Points 391154

L'élément HTML <button> peut uniquement publier dans le formulaire qui le contient.

Par conséquent, vous devez créer un formulaire qui POST à ​​l'action, puis insérer un <button> ou <input type="submit" /> dans le formulaire.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X