Bouton HTML appelant un contrôleur MVC et une méthode D'Action

Je sais que ce n'est pas juste, mais pour des raisons d'illustration, j'aimerais faire quelque chose comme ceci:

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

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

154
demandé sur TylerH 2010-03-24 00:56:58

16 réponses

Pas besoin d'utiliser un formulaire du tout sauf si vous voulez poster à l'action. Un bouton d'Entrée (pas soumettre) fera l'affaire.

<input type="button" value="Go Somewhere Else" onclick="location.href='<%: Url.Action("Action", "Controller") %>'" />
216
répondu Cheddar 2010-03-24 19:08:36

La syntaxe Razor est ici:

<input type="button" value="Create" onclick="location.href='@Url.Action("Create", "User")'" />
195
répondu Babul Mirdha 2013-04-06 05:38:55
<button type="button" onclick="location.href='@Url.Action("MyAction", "MyController")'" />

Type = "button" empêche la soumission de la page. au lieu de cela, il effectue votre action.

51
répondu Amir Chatrbahr 2017-12-07 23:31:12

Vous pouvez utiliser L'Url.Action pour spécifier générer l'url d'une action de contrôleur, de sorte que vous pouvez utiliser l'une des options suivantes:

<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>
14
répondu Jon Galloway 2010-03-24 04:22:20

Essayez ceci:

@Html.ActionLink("DisplayText", "Action", "Controller", route, attribute)

Cela devrait fonctionner pour vous.

12
répondu Sunny Okoro Awa 2016-01-18 17:32:05

En S'appuyant sur deux des réponses ci-dessus, vous pouvez faire ceci:

<button onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
7
répondu usefulBee 2014-04-08 18:11:33

Voici comment vous pouvez soumettre votre formulaire à un contrôleur et une méthode d'action spécifiques dans Razor.

 <input type="submit" value="Upload" onclick="location.href='@Url.Action("ActionName", "ControllerName")'" />
7
répondu Debendra Dash 2016-02-16 19:13:51

L'élément HTML <button> ne peut que publier sur le formulaire qui le contient.

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

6
répondu SLaks 2010-03-23 22:01:15

Dans le cas où vous obtenez une erreur en tant que "constante de chaîne non terminée", utilisez la syntaxe razor suivante:

<input type="button" onclick="@("location.href='"+ Url.Action("Index","Test")+ "'")" />
5
répondu Gaurav Joshi 2015-05-26 05:48:05

Lorsque vous implémentez l'action dans le contrôleur, utilisez

return View("Index");

Ou

return RedirectToAction("Index");

Où Index.la page cshtml (ou la page qui génère l'action) est déjà définie. Sinon, vous rencontrez probablement " la vue ou son maître n'a pas été trouvé..." erreur.

Source: https://blogs.msdn.microsoft.com/aspnetue/2010/09/17/best-practices-for-asp-net-mvc/

4
répondu HappyCoder 2017-01-12 05:33:12

Donc, j'utilise Razor mais cela fonctionnera en utilisant l'un ou l'autre. J'enroule essentiellement un bouton dans un lien.

<a href="Controller/ActionMethod">
    <input type="button" value="Click Me" />
</a>
3
répondu jade290 2015-08-13 15:25:39

Malgré la méthode onclick, vous pouvez également utiliser formaction comme suit:

<button type="submit" id="button1" name="button1" formaction='@Url.Action("Action", "Controller")'>Save</button>
3
répondu Rahul Bhat 2017-08-19 06:27:27

Il vaut mieux utiliser cet exemple

<a href="@Url.Action("Register","Account", new {id=Item.id })"
class="btn btn-primary btn-lg">Register</a>
2
répondu Alex Siela 2017-11-13 00:41:50

Si vous êtes dans la page d'accueil ("/Home / Index") et que vous souhaitez appeler L'action D'Index du contrôleur D'administration, la suite fonctionnerait pour vous.

<li><a href="/Admin/Index">Admin</a></li>
0
répondu Pabitra Dash 2014-05-14 14:17:30

OK, en gros, vous avez besoin de passer l'action du bouton et de l'appeler quand sur se produit, il n'a pas besoin d'être à l'intérieur d'un, vous pouvez utiliser le code HTML onclick sur bouton déclencher lorsque le bouton obtenir cliqué...

<button id="my-button" onclick="location.href='@Url.Action("YourActionName", "YourControllerName")'">Submit</button>
0
répondu Alireza 2017-10-21 13:13:47

Il vaut mieux utiliser cet exemple .

Appeler l'action et le contrôleur à l'aide d'un ActionLink:

@Html.ActionLink("Submit", "Action", "Controller", route, new { @class = "btn btn-block"})
0
répondu Rahul Raut 2018-04-03 14:57:28