Comme je travaille sur l’application Asp.Net MVC, dans mon application, jQuery.POST
méthode jQuery.POST
pour soumettre un formulaire.
par exemple
jQuery.post('/Product/Save', jQuery(document.forms[0]).serialize(), function (data) { alert('Product Added Successfully.); } );
Dans l’extrait de code ci-dessus, je souhaite passer un autre paramètre .. disons .. ProductID
.
L’idée est donc que je souhaite transmettre les ProductID variable
jQuery(document.forms[0]).serialize()
et jQuery.POST method
dans la jQuery.POST method
, afin que je puisse obtenir à la fois Form and ProductID
dans controller's action method
mon controller's action method
.
Quelqu’un pourrait-il s’il vous plaît laissez-moi savoir que je le ferais?
Merci d’avance.
Vous pouvez utiliser le plug-in suivant pour sérialiser le formulaire dans un object JSON et append d’autres parameters:
$.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };
comme ça:
var data = $('form').serializeObject(); data['ProductId'] = '123'; $.post('<%= Url.Action("Save", "Product") %>', data, function (data) { alert('Product Added Successfully.'); });
Pourquoi ne pas utiliser la méthode Url.Action pour générer votre URL d’appel? Vous pouvez inclure les données supplémentaires dont vous avez besoin de cette manière.
<%: Url.Action('Save', 'Product', new { "ProductID", your product id }) %>
Cela remplacerait l’URL codée en dur dans votre appel de méthode jQuery.post.
Que diriez-vous:
var url = '<%= Html.BuildUrlFromExpression(c => c.Save(":productId")) %>';
Vous pourrez ultérieurement remplacer l’URL par la valeur réelle dans l’URL de votre publication.
url.replace(':productId', $productId);