MVC cliquez sur le bouton d'appel de POSTE de la méthode d'Action
Comment puis-je appeler un MVC méthode d'action avec des paramètres complexes, comme ci-dessous, à partir d'un événement de clic de bouton?
[ValidateInput(false)]
[HttpPost]
public ActionResult Export(ViewModel vm)
{
//some logic
}
J'ai fait une action POST car j'ai besoin de passer des balises HTML de la page sur laquelle le bouton est à la méthode d'action qui est trop long. J'ai essayé cela, mais c'est pour une opération GET
<input type="button" value="Detail" onclick="location.href='@Url.Action("Export", "Report")?html=' + $('#test').html()" />
- avez-vous essayé de le mettre en soumettre le formulaire ?
- Vous devez envoyer une requête POST à l'Action, c'est à dire la soumission d'un formulaire ou d'une requête AJAX.
location.href
va faire une demande GET - Être fatigué à l'aide de [ValidateInput(false)] peut vous causer plus de maux de tête plus tard ce que vous essayez d'accomplir en l'éteignant.
- Vous pouvez vérifier: stackoverflow.com/questions/25106722/...
- Utilisez <form method="post" action="<%: Url.Action("Exporter", "Rapport") %>"/>
Vous devez vous connecter pour publier un commentaire.
Si vous voulez faire ceci à l'aide d'un clic sur un bouton il est possible d'inscrire à l'événement click du bouton en JS. Dans votre JS, vous pouvez faire une requête ajax post, qui affichera un objet JSON (votre VM) à votre action:
Rasoir:
JS:
Une autre façon de le faire est de soumettre le modèle de vue à l'aide d'un formulaire.
Vous pouvez le faire avec le formulaire HTML
Et à l'intérieur de votre contrôleur, vous devez utiliser le langage html paramètre
essayer cette
ajouter un Script en js
ajouter des param dans votre méthode chaîne html