Quelqu'un peut-il me dire comment puis-je soumettre des valeurs à Controller à l'aide des méthodes ActionLink et POST?
Je ne veux pas utiliser de boutons.
Je suppose qu'il a quelque chose avec jQuery.
Je vous remercie!
Réponses
Trop de publicités? Vous ne pouvez pas utiliser un ActionLink car cela ne fait que restituer une balise d'ancrage.
Vous pouvez utiliser une publication JQuery AJAX, voir http://docs.jquery.com/Ajax/jQuery.post.
ou appelez simplement la méthode submit du formulaire avec ou sans JQuery (ce qui ne serait pas AJAX), peut-être dans l'événement onclick, quel que soit le contrôle que vous en preniez.
Vous pouvez utiliser jQuery pour effectuer un POST pour tous vos boutons. Donnez-leur simplement le même nom CssClass.
Utilisez "return false"; à la fin de votre événement javascript onclick si vous souhaitez effectuer une redirection RedirectToAction côté serveur après la publication, sinon il vous suffit de renvoyer la vue.
Code de rasoir
@using (Html.BeginForm())
{
@Html.HiddenFor(model => model.ID)
@Html.ActionLink("Save", "SaveAction", "MainController", null, new { @class = "saveButton", onclick = "return false;" })
}
Code JQuery
$(document).ready(function () {
$('.saveButton').click(function () {
$(this).closest('form')[0].submit();
});
});
C #
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SaveAction(SaveViewModel model)
{
// Save code here...
return RedirectToAction("Index");
//return View(model);
}
Utilisez le lien suivant le lien d’action:
<%= Html.ActionLink("Click Here" , "ActionName","ContorllerName" )%>
Pour soumettre les valeurs du formulaire, utilisez:
<% using (Html.BeginForm("CustomerSearchResults", "Customer"))
{ %>
<input type="text" id="Name" />
<input type="submit" class="dASButton" value="Submit" />
<% } %>
Il soumettra les données au contrôleur client et à l'action CustomerSearchResults.