Lorsque nous cliquons sur le bouton d'envoi d'un formulaire, l'action du contrôleur ayant l'attribut HTTPPost est appelée, mais je ne peux pas appeler ou effectuer une action lorsqu'un bouton HTML normal est cliqué Bien que les articles suivants
http://www.codeproject.com/Tips/198477/Calling-a-MVC-Controller-and-Action-Method-using-H
Bouton HTML appelant un contrôleur MVC et une méthode d'action
indique l'approche mais les deux utilisent le nom du contrôleur dans la vue. Donc, vue doit savoir sur le contrôleur, je cherche une réponse que vue n'aura pas à connaître sur le contrôleur. car les vues doivent être indépendantes du contrôleur , Les vues ne doivent pas connaître le contrôleur Donc, si vous connaissez la réponse, répondez-le
toute forme qui dirige votre utilisateur à l'URL créée par
<a href='@Url.Action("{action}", "{controller}")'> click me </a>
ou
@using(BeginForm("{action}", "{controller}")
fera ce que vous voulez.
Cela peut être avec un
C'est la destination qui compte. La vue ne "sait" rien de l'action ou du contrôleur. L'assistant fait.
Pour exécuter une action MVC du côté client (c'est-à-dire depuis une vue), vous devez cliquer sur une URL (avec n'importe quel verbe: get, post, put, etc.). Par conséquent, pour exécuter une action à partir d'une vue, vous allez Vous devez connaître l'URL de cette action. Par défaut, cette URL est directement mappée sur le controllername/actionname
, mais vous pouvez la redéfinir si vous souhaitez créer davantage d'abstraction entre la vue et le contrôleur.
Compte tenu de cela, votre bouton doit simplement être un lien vers une URL ou un lien vers js pour effectuer une demande http Ajax.
J'espère que cela pourra aider.
Vous ne pouvez pas avoir 2 actions sur le même contrôleur avec le même nom et le même verbe HTTP. Donc, ce que vous demandez n'a pas de sens. Vous pouvez appeler la même action de contrôleur que celle qui a rendu la vue sans spécifier d'action et le nom du contrôleur. La raison pour laquelle Html.BeginForm()
fonctionne sans spécifier d'action ni de nom de contrôleur est que le formulaire envoie une demande POST au serveur et que vous pouvez distinguer les 2 actions.